diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterAdminService.java b/core/api/src/main/java/org/onosproject/cluster/ClusterAdminService.java
index 5c244b1..e567540 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterAdminService.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterAdminService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import org.onlab.packet.IpAddress;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterEvent.java b/core/api/src/main/java/org/onosproject/cluster/ClusterEvent.java
index 0f95e30..7bdc1d7 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterEvent.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterEvent.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes cluster-related event.
diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterEventListener.java b/core/api/src/main/java/org/onosproject/cluster/ClusterEventListener.java
index 14554ef..79ff06e 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterEventListener.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterEventListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving device cluster-related events.
diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterService.java b/core/api/src/main/java/org/onosproject/cluster/ClusterService.java
index 6d2a455..1d21de7 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterService.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterStore.java b/core/api/src/main/java/org/onosproject/cluster/ClusterStore.java
index 0a4ac58..bb0c91c 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterStore.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterStore.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
-import org.onlab.onos.store.Store;
+import org.onosproject.store.Store;
 import org.onlab.packet.IpAddress;
 
 import java.util.Set;
diff --git a/core/api/src/main/java/org/onosproject/cluster/ClusterStoreDelegate.java b/core/api/src/main/java/org/onosproject/cluster/ClusterStoreDelegate.java
index 6fed1ee..50d4430 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ClusterStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ClusterStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Cluster store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/cluster/ControllerNode.java b/core/api/src/main/java/org/onosproject/cluster/ControllerNode.java
index 29f5cf4..3cfc936 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ControllerNode.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ControllerNode.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import org.onlab.packet.IpAddress;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/ControllerNodeToNodeId.java b/core/api/src/main/java/org/onosproject/cluster/ControllerNodeToNodeId.java
index 78f211c..4cde8b2 100644
--- a/core/api/src/main/java/org/onosproject/cluster/ControllerNodeToNodeId.java
+++ b/core/api/src/main/java/org/onosproject/cluster/ControllerNodeToNodeId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import com.google.common.base.Function;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/DefaultControllerNode.java b/core/api/src/main/java/org/onosproject/cluster/DefaultControllerNode.java
index 4ed972f..31185dd 100644
--- a/core/api/src/main/java/org/onosproject/cluster/DefaultControllerNode.java
+++ b/core/api/src/main/java/org/onosproject/cluster/DefaultControllerNode.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import org.onlab.packet.IpAddress;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/Leadership.java b/core/api/src/main/java/org/onosproject/cluster/Leadership.java
index 6be7c9b..4a1e897 100644
--- a/core/api/src/main/java/org/onosproject/cluster/Leadership.java
+++ b/core/api/src/main/java/org/onosproject/cluster/Leadership.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/LeadershipEvent.java b/core/api/src/main/java/org/onosproject/cluster/LeadershipEvent.java
index bf20270..4eaf686 100644
--- a/core/api/src/main/java/org/onosproject/cluster/LeadershipEvent.java
+++ b/core/api/src/main/java/org/onosproject/cluster/LeadershipEvent.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.Objects;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/LeadershipEventListener.java b/core/api/src/main/java/org/onosproject/cluster/LeadershipEventListener.java
index 8dbd162..20f2c24 100644
--- a/core/api/src/main/java/org/onosproject/cluster/LeadershipEventListener.java
+++ b/core/api/src/main/java/org/onosproject/cluster/LeadershipEventListener.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving device leadership-related events.
  */
 public interface LeadershipEventListener  extends EventListener<LeadershipEvent> {
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java b/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
index 2709b7f..75cf90f 100644
--- a/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
+++ b/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.Map;
 
@@ -58,4 +58,4 @@
      * @param listener listener to be removed.
      */
     void removeListener(LeadershipEventListener listener);
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/cluster/NodeId.java b/core/api/src/main/java/org/onosproject/cluster/NodeId.java
index 50cdda4..68b490f 100644
--- a/core/api/src/main/java/org/onosproject/cluster/NodeId.java
+++ b/core/api/src/main/java/org/onosproject/cluster/NodeId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java b/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java
index 3e2905e..a02cda9 100644
--- a/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java
+++ b/core/api/src/main/java/org/onosproject/cluster/RoleInfo.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
 
 import java.util.List;
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/cluster/package-info.java b/core/api/src/main/java/org/onosproject/cluster/package-info.java
index 509fbdc..d5ae40c 100644
--- a/core/api/src/main/java/org/onosproject/cluster/package-info.java
+++ b/core/api/src/main/java/org/onosproject/cluster/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Set of abstractions for dealing with controller cluster related topics.
  */
-package org.onlab.onos.cluster;
+package org.onosproject.cluster;
diff --git a/core/api/src/main/java/org/onosproject/codec/CodecContext.java b/core/api/src/main/java/org/onosproject/codec/CodecContext.java
index 6c8493e..ee00fa9 100644
--- a/core/api/src/main/java/org/onosproject/codec/CodecContext.java
+++ b/core/api/src/main/java/org/onosproject/codec/CodecContext.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.codec;
+package org.onosproject.codec;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
diff --git a/core/api/src/main/java/org/onosproject/codec/CodecService.java b/core/api/src/main/java/org/onosproject/codec/CodecService.java
index 5f456f8..2705569 100644
--- a/core/api/src/main/java/org/onosproject/codec/CodecService.java
+++ b/core/api/src/main/java/org/onosproject/codec/CodecService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.codec;
+package org.onosproject.codec;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/codec/JsonCodec.java b/core/api/src/main/java/org/onosproject/codec/JsonCodec.java
index 8a8f426..815f1e4 100644
--- a/core/api/src/main/java/org/onosproject/codec/JsonCodec.java
+++ b/core/api/src/main/java/org/onosproject/codec/JsonCodec.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.codec;
+package org.onosproject.codec;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
diff --git a/core/api/src/main/java/org/onosproject/codec/package-info.java b/core/api/src/main/java/org/onosproject/codec/package-info.java
index ce58d91..0aa063f 100644
--- a/core/api/src/main/java/org/onosproject/codec/package-info.java
+++ b/core/api/src/main/java/org/onosproject/codec/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Base JSON codec abstraction and a service for tracking various JSON codecs.
  */
-package org.onlab.onos.codec;
\ No newline at end of file
+package org.onosproject.codec;
diff --git a/core/api/src/main/java/org/onosproject/core/ApplicationId.java b/core/api/src/main/java/org/onosproject/core/ApplicationId.java
index 8e639c4..25bc8ce 100644
--- a/core/api/src/main/java/org/onosproject/core/ApplicationId.java
+++ b/core/api/src/main/java/org/onosproject/core/ApplicationId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 
 /**
diff --git a/core/api/src/main/java/org/onosproject/core/ApplicationIdStore.java b/core/api/src/main/java/org/onosproject/core/ApplicationIdStore.java
index 2819e87..cef3f15 100644
--- a/core/api/src/main/java/org/onosproject/core/ApplicationIdStore.java
+++ b/core/api/src/main/java/org/onosproject/core/ApplicationIdStore.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/core/CoreService.java b/core/api/src/main/java/org/onosproject/core/CoreService.java
index c1499f7b..4b13c38 100644
--- a/core/api/src/main/java/org/onosproject/core/CoreService.java
+++ b/core/api/src/main/java/org/onosproject/core/CoreService.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 import java.util.Set;
 
@@ -25,7 +25,7 @@
 public interface CoreService {
 
     public static final ProviderId CORE_PROVIDER_ID =
-            new ProviderId("core", "org.onlab.onos.core");
+            new ProviderId("core", "org.onosproject.core");
 
     /**
      * Returns the product version.
diff --git a/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java b/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
index f99123d..e6f448e 100644
--- a/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
+++ b/core/api/src/main/java/org/onosproject/core/DefaultApplicationId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/core/DefaultGroupId.java b/core/api/src/main/java/org/onosproject/core/DefaultGroupId.java
index 7e51114..11ca73c 100644
--- a/core/api/src/main/java/org/onosproject/core/DefaultGroupId.java
+++ b/core/api/src/main/java/org/onosproject/core/DefaultGroupId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/core/GroupId.java b/core/api/src/main/java/org/onosproject/core/GroupId.java
index 6757fcd..367e4e3 100644
--- a/core/api/src/main/java/org/onosproject/core/GroupId.java
+++ b/core/api/src/main/java/org/onosproject/core/GroupId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 /**
  * Group identifier.
diff --git a/core/api/src/main/java/org/onosproject/core/IdBlock.java b/core/api/src/main/java/org/onosproject/core/IdBlock.java
index c811e88..4be86ae 100644
--- a/core/api/src/main/java/org/onosproject/core/IdBlock.java
+++ b/core/api/src/main/java/org/onosproject/core/IdBlock.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/core/IdBlockStore.java b/core/api/src/main/java/org/onosproject/core/IdBlockStore.java
index e67a2fe..8ed58ae 100644
--- a/core/api/src/main/java/org/onosproject/core/IdBlockStore.java
+++ b/core/api/src/main/java/org/onosproject/core/IdBlockStore.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 /**
  * Manages id blocks.
diff --git a/core/api/src/main/java/org/onosproject/core/IdGenerator.java b/core/api/src/main/java/org/onosproject/core/IdGenerator.java
index fb8953b..437455c 100644
--- a/core/api/src/main/java/org/onosproject/core/IdGenerator.java
+++ b/core/api/src/main/java/org/onosproject/core/IdGenerator.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 /**
  * A generalized interface for ID generation
diff --git a/core/api/src/main/java/org/onosproject/core/MetricsHelper.java b/core/api/src/main/java/org/onosproject/core/MetricsHelper.java
index 7c9a715..b5be094 100644
--- a/core/api/src/main/java/org/onosproject/core/MetricsHelper.java
+++ b/core/api/src/main/java/org/onosproject/core/MetricsHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import org.onlab.metrics.MetricsComponent;
 import org.onlab.metrics.MetricsFeature;
diff --git a/core/api/src/main/java/org/onosproject/core/UnavailableIdException.java b/core/api/src/main/java/org/onosproject/core/UnavailableIdException.java
index 14c8496..7382d66 100644
--- a/core/api/src/main/java/org/onosproject/core/UnavailableIdException.java
+++ b/core/api/src/main/java/org/onosproject/core/UnavailableIdException.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 /**
  * Represents that there is no available IDs.
diff --git a/core/api/src/main/java/org/onosproject/core/Version.java b/core/api/src/main/java/org/onosproject/core/Version.java
index 12f1db5..5641a54 100644
--- a/core/api/src/main/java/org/onosproject/core/Version.java
+++ b/core/api/src/main/java/org/onosproject/core/Version.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/core/package-info.java b/core/api/src/main/java/org/onosproject/core/package-info.java
index 96c7b8b..3766d49 100644
--- a/core/api/src/main/java/org/onosproject/core/package-info.java
+++ b/core/api/src/main/java/org/onosproject/core/package-info.java
@@ -17,4 +17,4 @@
 /**
  * ONOS Core API definitions.
  */
-package org.onlab.onos.core;
+package org.onosproject.core;
diff --git a/core/api/src/main/java/org/onosproject/event/AbstractEvent.java b/core/api/src/main/java/org/onosproject/event/AbstractEvent.java
index e0717f1..51d1caa 100644
--- a/core/api/src/main/java/org/onosproject/event/AbstractEvent.java
+++ b/core/api/src/main/java/org/onosproject/event/AbstractEvent.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
diff --git a/core/api/src/main/java/org/onosproject/event/AbstractEventAccumulator.java b/core/api/src/main/java/org/onosproject/event/AbstractEventAccumulator.java
index 39c1103..3e0372f 100644
--- a/core/api/src/main/java/org/onosproject/event/AbstractEventAccumulator.java
+++ b/core/api/src/main/java/org/onosproject/event/AbstractEventAccumulator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import com.google.common.collect.Lists;
 import org.slf4j.Logger;
diff --git a/core/api/src/main/java/org/onosproject/event/AbstractListenerRegistry.java b/core/api/src/main/java/org/onosproject/event/AbstractListenerRegistry.java
index d9e6484..71b8ec7 100644
--- a/core/api/src/main/java/org/onosproject/event/AbstractListenerRegistry.java
+++ b/core/api/src/main/java/org/onosproject/event/AbstractListenerRegistry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import org.slf4j.Logger;
 
diff --git a/core/api/src/main/java/org/onosproject/event/DefaultEventSinkRegistry.java b/core/api/src/main/java/org/onosproject/event/DefaultEventSinkRegistry.java
index 7f99e7a..755c92b 100644
--- a/core/api/src/main/java/org/onosproject/event/DefaultEventSinkRegistry.java
+++ b/core/api/src/main/java/org/onosproject/event/DefaultEventSinkRegistry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import com.google.common.collect.ImmutableSet;
 
diff --git a/core/api/src/main/java/org/onosproject/event/Event.java b/core/api/src/main/java/org/onosproject/event/Event.java
index fe1f2bf..f04ae61 100644
--- a/core/api/src/main/java/org/onosproject/event/Event.java
+++ b/core/api/src/main/java/org/onosproject/event/Event.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 /**
  * Abstraction of an of a time-stamped event pertaining to an arbitrary subject.
diff --git a/core/api/src/main/java/org/onosproject/event/EventAccumulator.java b/core/api/src/main/java/org/onosproject/event/EventAccumulator.java
index 2d4384e..52928ae 100644
--- a/core/api/src/main/java/org/onosproject/event/EventAccumulator.java
+++ b/core/api/src/main/java/org/onosproject/event/EventAccumulator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/event/EventDeliveryService.java b/core/api/src/main/java/org/onosproject/event/EventDeliveryService.java
index 2e5b8ed..2d9d38ce 100644
--- a/core/api/src/main/java/org/onosproject/event/EventDeliveryService.java
+++ b/core/api/src/main/java/org/onosproject/event/EventDeliveryService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 /**
  * Abstraction of an entity capable of accepting events to be posted and
diff --git a/core/api/src/main/java/org/onosproject/event/EventDispatcher.java b/core/api/src/main/java/org/onosproject/event/EventDispatcher.java
index c1155d3..daebd8b 100644
--- a/core/api/src/main/java/org/onosproject/event/EventDispatcher.java
+++ b/core/api/src/main/java/org/onosproject/event/EventDispatcher.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 /**
  * Abstraction of a mechanism capable of accepting and dispatching events to
diff --git a/core/api/src/main/java/org/onosproject/event/EventListener.java b/core/api/src/main/java/org/onosproject/event/EventListener.java
index 0504b29..e4d6937 100644
--- a/core/api/src/main/java/org/onosproject/event/EventListener.java
+++ b/core/api/src/main/java/org/onosproject/event/EventListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 /**
  * Entity capable of receiving events.
diff --git a/core/api/src/main/java/org/onosproject/event/EventSink.java b/core/api/src/main/java/org/onosproject/event/EventSink.java
index 5f2f50e..c6e5ac9 100644
--- a/core/api/src/main/java/org/onosproject/event/EventSink.java
+++ b/core/api/src/main/java/org/onosproject/event/EventSink.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 /**
  * Abstraction of an event sink capable of processing the specified event types.
diff --git a/core/api/src/main/java/org/onosproject/event/EventSinkRegistry.java b/core/api/src/main/java/org/onosproject/event/EventSinkRegistry.java
index 40c720a..bb054a3 100644
--- a/core/api/src/main/java/org/onosproject/event/EventSinkRegistry.java
+++ b/core/api/src/main/java/org/onosproject/event/EventSinkRegistry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/event/package-info.java b/core/api/src/main/java/org/onosproject/event/package-info.java
index 8f6fd67..6b10bcf 100644
--- a/core/api/src/main/java/org/onosproject/event/package-info.java
+++ b/core/api/src/main/java/org/onosproject/event/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Local event delivery subsystem interfaces &amp; supporting abstractions.
  */
-package org.onlab.onos.event;
+package org.onosproject.event;
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipAdminService.java b/core/api/src/main/java/org/onosproject/mastership/MastershipAdminService.java
index cb3869d..6c41fb2 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipAdminService.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipAdminService.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
-import org.onlab.onos.cluster.NodeId;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
+import org.onosproject.cluster.NodeId;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
 
 /**
  * Service for administering the inventory of device masterships.
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipEvent.java b/core/api/src/main/java/org/onosproject/mastership/MastershipEvent.java
index 5447545..35c32e7 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipEvent.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipEvent.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
 import org.joda.time.LocalDateTime;
-import org.onlab.onos.cluster.RoleInfo;
-import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.cluster.RoleInfo;
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.net.DeviceId;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipListener.java b/core/api/src/main/java/org/onosproject/mastership/MastershipListener.java
index 4ed235f..9c5690e 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipListener.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving device mastership-related events.
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipService.java b/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
index 6a6244b..f03f6c8 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipService.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
 import java.util.Set;
 
-import org.onlab.onos.cluster.NodeId;
-import org.onlab.onos.cluster.RoleInfo;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
+import org.onosproject.cluster.NodeId;
+import org.onosproject.cluster.RoleInfo;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
 
 /**
  * Service responsible for determining the controller instance mastership of
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipStore.java b/core/api/src/main/java/org/onosproject/mastership/MastershipStore.java
index 5706a8b..2112029 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipStore.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipStore.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
 import java.util.Set;
 
-import org.onlab.onos.cluster.NodeId;
-import org.onlab.onos.cluster.RoleInfo;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.store.Store;
+import org.onosproject.cluster.NodeId;
+import org.onosproject.cluster.RoleInfo;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.store.Store;
 
 /**
  * Manages inventory of mastership roles for devices, across controller
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipStoreDelegate.java b/core/api/src/main/java/org/onosproject/mastership/MastershipStoreDelegate.java
index 78a8dc8..c71f4ed 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Mastership store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipTerm.java b/core/api/src/main/java/org/onosproject/mastership/MastershipTerm.java
index e1731ef..b2c0e41 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipTerm.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipTerm.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
 import java.util.Objects;
 
-import org.onlab.onos.cluster.NodeId;
+import org.onosproject.cluster.NodeId;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/mastership/MastershipTermService.java b/core/api/src/main/java/org/onosproject/mastership/MastershipTermService.java
index f23fcf7..1725ee0 100644
--- a/core/api/src/main/java/org/onosproject/mastership/MastershipTermService.java
+++ b/core/api/src/main/java/org/onosproject/mastership/MastershipTermService.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 // TODO give me a better name
 /**
diff --git a/core/api/src/main/java/org/onosproject/mastership/package-info.java b/core/api/src/main/java/org/onosproject/mastership/package-info.java
index 60f41e5..0040680 100644
--- a/core/api/src/main/java/org/onosproject/mastership/package-info.java
+++ b/core/api/src/main/java/org/onosproject/mastership/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Set of abstractions for dealing with controller mastership related topics.
  */
-package org.onlab.onos.mastership;
+package org.onosproject.mastership;
diff --git a/core/api/src/main/java/org/onosproject/net/AbstractAnnotated.java b/core/api/src/main/java/org/onosproject/net/AbstractAnnotated.java
index a4778d8..d90c9da 100644
--- a/core/api/src/main/java/org/onosproject/net/AbstractAnnotated.java
+++ b/core/api/src/main/java/org/onosproject/net/AbstractAnnotated.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
diff --git a/core/api/src/main/java/org/onosproject/net/AbstractDescription.java b/core/api/src/main/java/org/onosproject/net/AbstractDescription.java
index 8368ff4..d81b83c 100644
--- a/core/api/src/main/java/org/onosproject/net/AbstractDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/AbstractDescription.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
diff --git a/core/api/src/main/java/org/onosproject/net/AbstractElement.java b/core/api/src/main/java/org/onosproject/net/AbstractElement.java
index ff6917d..595e7b9 100644
--- a/core/api/src/main/java/org/onosproject/net/AbstractElement.java
+++ b/core/api/src/main/java/org/onosproject/net/AbstractElement.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 /**
  * Base implementation of network elements, i.e. devices or hosts.
diff --git a/core/api/src/main/java/org/onosproject/net/AbstractModel.java b/core/api/src/main/java/org/onosproject/net/AbstractModel.java
index 41bcabd..f3cd5ef 100644
--- a/core/api/src/main/java/org/onosproject/net/AbstractModel.java
+++ b/core/api/src/main/java/org/onosproject/net/AbstractModel.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 /**
  * Base implementation of a network model entity.
diff --git a/core/api/src/main/java/org/onosproject/net/Annotated.java b/core/api/src/main/java/org/onosproject/net/Annotated.java
index 7ec378b..ac4545a 100644
--- a/core/api/src/main/java/org/onosproject/net/Annotated.java
+++ b/core/api/src/main/java/org/onosproject/net/Annotated.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Represents an entity that carries arbitrary annotations.
diff --git a/core/api/src/main/java/org/onosproject/net/AnnotationKeys.java b/core/api/src/main/java/org/onosproject/net/AnnotationKeys.java
index 3871b3f..6ccb519 100644
--- a/core/api/src/main/java/org/onosproject/net/AnnotationKeys.java
+++ b/core/api/src/main/java/org/onosproject/net/AnnotationKeys.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Collection of keys for annotation.
diff --git a/core/api/src/main/java/org/onosproject/net/Annotations.java b/core/api/src/main/java/org/onosproject/net/Annotations.java
index cb3ffb4..db16143 100644
--- a/core/api/src/main/java/org/onosproject/net/Annotations.java
+++ b/core/api/src/main/java/org/onosproject/net/Annotations.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/AnnotationsUtil.java b/core/api/src/main/java/org/onosproject/net/AnnotationsUtil.java
index f76e66a..d43a304 100644
--- a/core/api/src/main/java/org/onosproject/net/AnnotationsUtil.java
+++ b/core/api/src/main/java/org/onosproject/net/AnnotationsUtil.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Utility for processing annotations.
diff --git a/core/api/src/main/java/org/onosproject/net/ConnectPoint.java b/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
index 42c424a..621cb2d 100644
--- a/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
+++ b/core/api/src/main/java/org/onosproject/net/ConnectPoint.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultAnnotations.java b/core/api/src/main/java/org/onosproject/net/DefaultAnnotations.java
index a37748d..514152e 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultAnnotations.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultAnnotations.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Collections;
 import java.util.HashMap;
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultDevice.java b/core/api/src/main/java/org/onosproject/net/DefaultDevice.java
index 1207427..8197f44 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultDevice.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultDevice.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 import org.onlab.packet.ChassisId;
 
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultEdgeLink.java b/core/api/src/main/java/org/onosproject/net/DefaultEdgeLink.java
index 21cb0ed..e38c45d 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultEdgeLink.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultEdgeLink.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultHost.java b/core/api/src/main/java/org/onosproject/net/DefaultHost.java
index 61d5dd2..2877701 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultHost.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultHost.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultLink.java b/core/api/src/main/java/org/onosproject/net/DefaultLink.java
index 6ebd52d..4d1ca6d 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultLink.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultLink.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 import java.util.Objects;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
-import static org.onlab.onos.net.Link.State.ACTIVE;
+import static org.onosproject.net.Link.State.ACTIVE;
 
 /**
  * Default infrastructure link model implementation.
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultPath.java b/core/api/src/main/java/org/onosproject/net/DefaultPath.java
index 016bb69..fabb6e5 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultPath.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultPath.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import com.google.common.collect.ImmutableList;
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 import java.util.List;
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultPort.java b/core/api/src/main/java/org/onosproject/net/DefaultPort.java
index d9cd764..35c02d3 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultPort.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultPort.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/Description.java b/core/api/src/main/java/org/onosproject/net/Description.java
index 6f44c43..c01af54 100644
--- a/core/api/src/main/java/org/onosproject/net/Description.java
+++ b/core/api/src/main/java/org/onosproject/net/Description.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Base abstraction of a piece of information about network elements.
diff --git a/core/api/src/main/java/org/onosproject/net/Device.java b/core/api/src/main/java/org/onosproject/net/Device.java
index cbd261f..599c06b 100644
--- a/core/api/src/main/java/org/onosproject/net/Device.java
+++ b/core/api/src/main/java/org/onosproject/net/Device.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import org.onlab.packet.ChassisId;
 
diff --git a/core/api/src/main/java/org/onosproject/net/DeviceId.java b/core/api/src/main/java/org/onosproject/net/DeviceId.java
index f76b6b8..5331342 100644
--- a/core/api/src/main/java/org/onosproject/net/DeviceId.java
+++ b/core/api/src/main/java/org/onosproject/net/DeviceId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.net.URI;
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/EdgeLink.java b/core/api/src/main/java/org/onosproject/net/EdgeLink.java
index 9956bbc..73b916b 100644
--- a/core/api/src/main/java/org/onosproject/net/EdgeLink.java
+++ b/core/api/src/main/java/org/onosproject/net/EdgeLink.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Abstraction of a link between an end-station host and the network
diff --git a/core/api/src/main/java/org/onosproject/net/Element.java b/core/api/src/main/java/org/onosproject/net/Element.java
index 0749278..6cdab9e 100644
--- a/core/api/src/main/java/org/onosproject/net/Element.java
+++ b/core/api/src/main/java/org/onosproject/net/Element.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Base abstraction of a network element, i.e. an infrastructure device or an end-station host.
diff --git a/core/api/src/main/java/org/onosproject/net/ElementId.java b/core/api/src/main/java/org/onosproject/net/ElementId.java
index 099cf56..49e110b 100644
--- a/core/api/src/main/java/org/onosproject/net/ElementId.java
+++ b/core/api/src/main/java/org/onosproject/net/ElementId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Immutable representation of a network element identity.
diff --git a/core/api/src/main/java/org/onosproject/net/Host.java b/core/api/src/main/java/org/onosproject/net/Host.java
index 7c063a4..646f228 100644
--- a/core/api/src/main/java/org/onosproject/net/Host.java
+++ b/core/api/src/main/java/org/onosproject/net/Host.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
diff --git a/core/api/src/main/java/org/onosproject/net/HostId.java b/core/api/src/main/java/org/onosproject/net/HostId.java
index 5242d7f..519945d 100644
--- a/core/api/src/main/java/org/onosproject/net/HostId.java
+++ b/core/api/src/main/java/org/onosproject/net/HostId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/HostLocation.java b/core/api/src/main/java/org/onosproject/net/HostLocation.java
index 29e28fd..b0553a2 100644
--- a/core/api/src/main/java/org/onosproject/net/HostLocation.java
+++ b/core/api/src/main/java/org/onosproject/net/HostLocation.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import static org.onlab.onos.net.PortNumber.P0;
+import static org.onosproject.net.PortNumber.P0;
 
 /**
  * Representation of a network edge location where an end-station host is
diff --git a/core/api/src/main/java/org/onosproject/net/Link.java b/core/api/src/main/java/org/onosproject/net/Link.java
index f091dc4..1593e75 100644
--- a/core/api/src/main/java/org/onosproject/net/Link.java
+++ b/core/api/src/main/java/org/onosproject/net/Link.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Abstraction of a network infrastructure link.
diff --git a/core/api/src/main/java/org/onosproject/net/LinkKey.java b/core/api/src/main/java/org/onosproject/net/LinkKey.java
index c4e461d..9cb6649 100644
--- a/core/api/src/main/java/org/onosproject/net/LinkKey.java
+++ b/core/api/src/main/java/org/onosproject/net/LinkKey.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/core/api/src/main/java/org/onosproject/net/MastershipRole.java b/core/api/src/main/java/org/onosproject/net/MastershipRole.java
index ef216d1..78f6586 100644
--- a/core/api/src/main/java/org/onosproject/net/MastershipRole.java
+++ b/core/api/src/main/java/org/onosproject/net/MastershipRole.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Representation of a relationship role of a controller instance to a device
diff --git a/core/api/src/main/java/org/onosproject/net/NetworkResource.java b/core/api/src/main/java/org/onosproject/net/NetworkResource.java
index faf3241..502208a 100644
--- a/core/api/src/main/java/org/onosproject/net/NetworkResource.java
+++ b/core/api/src/main/java/org/onosproject/net/NetworkResource.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Representation of a network resource, e.g. a link, lambda, MPLS tag.
diff --git a/core/api/src/main/java/org/onosproject/net/Path.java b/core/api/src/main/java/org/onosproject/net/Path.java
index ae68844..c9c20c4 100644
--- a/core/api/src/main/java/org/onosproject/net/Path.java
+++ b/core/api/src/main/java/org/onosproject/net/Path.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/Port.java b/core/api/src/main/java/org/onosproject/net/Port.java
index 2153593..d1e83fa 100644
--- a/core/api/src/main/java/org/onosproject/net/Port.java
+++ b/core/api/src/main/java/org/onosproject/net/Port.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 
 /**
diff --git a/core/api/src/main/java/org/onosproject/net/PortNumber.java b/core/api/src/main/java/org/onosproject/net/PortNumber.java
index 5883871..e2db835 100644
--- a/core/api/src/main/java/org/onosproject/net/PortNumber.java
+++ b/core/api/src/main/java/org/onosproject/net/PortNumber.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/Provided.java b/core/api/src/main/java/org/onosproject/net/Provided.java
index 75301eb..daf85e7 100644
--- a/core/api/src/main/java/org/onosproject/net/Provided.java
+++ b/core/api/src/main/java/org/onosproject/net/Provided.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
-import org.onlab.onos.net.provider.ProviderId;
+import org.onosproject.net.provider.ProviderId;
 
 /**
  * Abstraction of an entity supplied by a provider.
diff --git a/core/api/src/main/java/org/onosproject/net/SparseAnnotations.java b/core/api/src/main/java/org/onosproject/net/SparseAnnotations.java
index 6487d96..a615456 100644
--- a/core/api/src/main/java/org/onosproject/net/SparseAnnotations.java
+++ b/core/api/src/main/java/org/onosproject/net/SparseAnnotations.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/Tunnel.java b/core/api/src/main/java/org/onosproject/net/Tunnel.java
index d5fad6c..c3a2cee 100644
--- a/core/api/src/main/java/org/onosproject/net/Tunnel.java
+++ b/core/api/src/main/java/org/onosproject/net/Tunnel.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
 
 /**
  * Abstraction of a generalized network tunnel.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java b/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
index e3aa2ed..5315994 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DefaultDeviceDescription.java
@@ -13,17 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.AbstractDescription;
-import org.onlab.onos.net.SparseAnnotations;
+import org.onosproject.net.AbstractDescription;
+import org.onosproject.net.SparseAnnotations;
 import org.onlab.packet.ChassisId;
 
 import java.net.URI;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.onos.net.Device.Type;
+import static org.onosproject.net.Device.Type;
 
 /**
  * Default implementation of immutable device description entity.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DefaultPortDescription.java b/core/api/src/main/java/org/onosproject/net/device/DefaultPortDescription.java
index 9688827..572d201 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DefaultPortDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DefaultPortDescription.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.net.AbstractDescription;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.SparseAnnotations;
+import org.onosproject.net.AbstractDescription;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.SparseAnnotations;
 
-import static org.onlab.onos.net.Port.Type;
+import static org.onosproject.net.Port.Type;
 
 /**
  * Default implementation of immutable port description.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
index 33be512..e84727c 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceAdminService.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 /**
  * Service for administering the inventory of infrastructure devices.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceClockProviderService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceClockProviderService.java
index 011f2a8..58f0f6b1 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceClockProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceClockProviderService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.mastership.MastershipTerm;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.mastership.MastershipTerm;
+import org.onosproject.net.DeviceId;
 
 /**
 * Interface for feeding term information to a logical clock service
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceClockService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceClockService.java
index 2214cfd..70b3715 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceClockService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceClockService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.store.Timestamp;
+import org.onosproject.net.DeviceId;
+import org.onosproject.store.Timestamp;
 
 /**
  * Interface for a logical clock service that vends per device timestamps.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceDescription.java b/core/api/src/main/java/org/onosproject/net/device/DeviceDescription.java
index c9c3676..07fac79 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceDescription.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.Description;
-import org.onlab.onos.net.Device;
+import org.onosproject.net.Description;
+import org.onosproject.net.Device;
 import org.onlab.packet.ChassisId;
 
 import java.net.URI;
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceEvent.java b/core/api/src/main/java/org/onosproject/net/device/DeviceEvent.java
index 63baeb4..395c0eb 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceEvent.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
 import org.joda.time.LocalDateTime;
-import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.Port;
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.net.Device;
+import org.onosproject.net.Port;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceListener.java b/core/api/src/main/java/org/onosproject/net/device/DeviceListener.java
index 62f4bc0..c9809b8 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceListener.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving infrastructure device related events.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java b/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
index 7280faf..d8adbb0 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceProvider.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.net.provider.Provider;
 
 /**
  * Abstraction of a device information provider.
@@ -30,8 +30,8 @@
      * Triggers an asynchronous probe of the specified device, intended to
      * determine whether the device is present or not. An indirect result of this
      * should be invocation of
-     * {@link org.onlab.onos.net.device.DeviceProviderService#deviceConnected} )} or
-     * {@link org.onlab.onos.net.device.DeviceProviderService#deviceDisconnected}
+     * {@link org.onosproject.net.device.DeviceProviderService#deviceConnected} )} or
+     * {@link org.onosproject.net.device.DeviceProviderService#deviceDisconnected}
      * at some later point in time.
      *
      * @param deviceId ID of device to be probed
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/device/DeviceProviderRegistry.java
index f1c69ba..a7ab7e3 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of a device provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceProviderService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceProviderService.java
index d156b28..f48543c 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceProviderService.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.net.provider.ProviderService;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceService.java b/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
index 7d2a0dd..20b8a0b 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceService.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.MastershipRole;
-import org.onlab.onos.net.Port;
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.MastershipRole;
+import org.onosproject.net.Port;
+import org.onosproject.net.PortNumber;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
index ed86881..4835504 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceStore.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.Device;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Port;
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.store.Store;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Port;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.store.Store;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/device/DeviceStoreDelegate.java
index 054d4cf..1a4fc67 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Infrastructure device store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/device/PortDescription.java b/core/api/src/main/java/org/onosproject/net/device/PortDescription.java
index b134d83..3ed3efc 100644
--- a/core/api/src/main/java/org/onosproject/net/device/PortDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/device/PortDescription.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
 
-import org.onlab.onos.net.Description;
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.Description;
+import org.onosproject.net.PortNumber;
 
-import static org.onlab.onos.net.Port.Type;
+import static org.onosproject.net.Port.Type;
 
 /**
  * Information about a port.
diff --git a/core/api/src/main/java/org/onosproject/net/device/package-info.java b/core/api/src/main/java/org/onosproject/net/device/package-info.java
index bf9efc0..4ee64dc 100644
--- a/core/api/src/main/java/org/onosproject/net/device/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/device/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Infrastructure device model &amp; related services API definitions.
  */
-package org.onlab.onos.net.device;
+package org.onosproject.net.device;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/BatchOperation.java b/core/api/src/main/java/org/onosproject/net/flow/BatchOperation.java
index 6fd16b9..09e34d8 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/BatchOperation.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/BatchOperation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationEntry.java b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationEntry.java
index d67ed74..37a1716 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationEntry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationResult.java b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationResult.java
index 4762872..684a869 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationResult.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationResult.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationTarget.java b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationTarget.java
index b9d6283..c9b20ef 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/BatchOperationTarget.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/BatchOperationTarget.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 /**
  * An interface of the class which is assigned to BatchOperation.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/CompletedBatchOperation.java b/core/api/src/main/java/org/onosproject/net/flow/CompletedBatchOperation.java
index 597c9cd..a17f7a3 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/CompletedBatchOperation.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/CompletedBatchOperation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 
 import java.util.Collections;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowEntry.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowEntry.java
index c6cb361..e46e3df 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowEntry.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static org.slf4j.LoggerFactory.getLogger;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 import org.slf4j.Logger;
 
 public class DefaultFlowEntry extends DefaultFlowRule
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowRule.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowRule.java
index 168f044..fce7fc9 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowRule.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultFlowRule.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
 import java.util.Objects;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.DefaultGroupId;
-import org.onlab.onos.core.GroupId;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.DefaultGroupId;
+import org.onosproject.core.GroupId;
+import org.onosproject.net.DeviceId;
 
 public class DefaultFlowRule implements FlowRule {
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
index 2730c14..1caed8e 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.criteria.Criteria;
-import org.onlab.onos.net.flow.criteria.Criterion;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.criteria.Criteria;
+import org.onosproject.net.flow.criteria.Criterion;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
index 54c0972..d3dcca0 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficTreatment.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.instructions.Instruction;
-import org.onlab.onos.net.flow.instructions.Instructions;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.instructions.Instruction;
+import org.onosproject.net.flow.instructions.Instructions;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowEntry.java b/core/api/src/main/java/org/onosproject/net/flow/FlowEntry.java
index a8b9ea0..401ef0e 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowEntry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 
 /**
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowId.java b/core/api/src/main/java/org/onosproject/net/flow/FlowId.java
index 397e690..52500f5 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowId.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import com.google.common.base.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
index 2124768..2c3185e 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.core.GroupId;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.core.GroupId;
+import org.onosproject.net.DeviceId;
 
 /**
  * Represents a generalized match &amp; action pair to be applied to
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEntry.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEntry.java
index 7a635e7..a82d60e 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEntry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.net.flow.FlowRuleBatchEntry.FlowRuleOperation;
+import org.onosproject.net.flow.FlowRuleBatchEntry.FlowRuleOperation;
 
 
 public class FlowRuleBatchEntry
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEvent.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEvent.java
index 1dbf8bd..ab72d8b 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchEvent.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes flow rule batch event.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchOperation.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchOperation.java
index 8d99f80..f9bc632 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchOperation.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchOperation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Collection;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchRequest.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchRequest.java
index 09698a4..a0be81c 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleBatchRequest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleEvent.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleEvent.java
index 550685a..41ef1c8 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleEvent.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes flow rule event.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleListener.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleListener.java
index 76359c0..1a6ef7d 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleListener.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving flow rule related events.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProvider.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProvider.java
index ccd9774..92814c5 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProvider.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.provider.Provider;
 
 import java.util.concurrent.Future;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderRegistry.java
index eba227f..7e317c0 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction for a flow rule provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderService.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderService.java
index 4c0d98d..9456719 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleProviderService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.provider.ProviderService;
 
 /**
  * Service through which flow rule providers can inject information into
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
index 8561f8a..78772c2 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleService.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.concurrent.Future;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.DeviceId;
 
 /**
  * Service for injecting flow rules into the environment and for obtaining
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
index bba5a3c..6fca2c3 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStore.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.concurrent.Future;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.store.Store;
+import org.onosproject.net.DeviceId;
+import org.onosproject.store.Store;
 
 /**
  * Manages inventory of flow rules; not intended for direct use.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStoreDelegate.java
index f7a123d..c4ddb12 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRuleStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Flow rule store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/StoredFlowEntry.java b/core/api/src/main/java/org/onosproject/net/flow/StoredFlowEntry.java
index de15732..dc0c339 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/StoredFlowEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/StoredFlowEntry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 
 public interface StoredFlowEntry extends FlowEntry {
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
index daf5268..d9b91f6 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.Set;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.criteria.Criterion;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.criteria.Criterion;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
index 3ac2c44..281dc86 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficTreatment.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
 import java.util.List;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.instructions.Instruction;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.instructions.Instruction;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/Treatment.java b/core/api/src/main/java/org/onosproject/net/flow/Treatment.java
index 26f78dd..a77079c 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/Treatment.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/Treatment.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
 
-import org.onlab.onos.net.PortNumber;
+import org.onosproject.net.PortNumber;
 
 /**
  * Abstraction of different kinds of treatment that can be applied to an
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
index 684c5ab..a41b238 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criteria.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.criteria;
+package org.onosproject.net.flow.criteria;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
 import java.util.Objects;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.criteria.Criterion.Type;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.criteria.Criterion.Type;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
index 718534d..5ce86a7 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.criteria;
+package org.onosproject.net.flow.criteria;
 
 
 /**
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/package-info.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/package-info.java
index 3205356..1f09192 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Traffic selection criteria model.
  */
-package org.onlab.onos.net.flow.criteria;
+package org.onosproject.net.flow.criteria;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instruction.java
index ea92134..6f2162f 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instruction.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
 
 /**
  * Abstraction of a single traffic treatment step.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
index c0fe386..4dd2c48 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/Instructions.java
@@ -13,21 +13,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.onos.net.flow.instructions.L2ModificationInstruction.*;
+import static org.onosproject.net.flow.instructions.L2ModificationInstruction.*;
 
 import java.util.Objects;
 
-import org.onlab.onos.net.PortNumber;
-import org.onlab.onos.net.flow.instructions.L0ModificationInstruction.L0SubType;
-import org.onlab.onos.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction;
-import org.onlab.onos.net.flow.instructions.L2ModificationInstruction.L2SubType;
-import org.onlab.onos.net.flow.instructions.L2ModificationInstruction.ModEtherInstruction;
-import org.onlab.onos.net.flow.instructions.L3ModificationInstruction.L3SubType;
-import org.onlab.onos.net.flow.instructions.L3ModificationInstruction.ModIPInstruction;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.flow.instructions.L0ModificationInstruction.L0SubType;
+import org.onosproject.net.flow.instructions.L0ModificationInstruction.ModLambdaInstruction;
+import org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType;
+import org.onosproject.net.flow.instructions.L2ModificationInstruction.ModEtherInstruction;
+import org.onosproject.net.flow.instructions.L3ModificationInstruction.L3SubType;
+import org.onosproject.net.flow.instructions.L3ModificationInstruction.ModIPInstruction;
 
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpAddress;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L0ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L0ModificationInstruction.java
index 25fe79f..69d6938 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L0ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L0ModificationInstruction.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
index 9b027d5..6baeceb 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L2ModificationInstruction.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
index e8b72e7..fb80557 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/L3ModificationInstruction.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/instructions/package-info.java b/core/api/src/main/java/org/onosproject/net/flow/instructions/package-info.java
index 0331743..65f58a4 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/instructions/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/instructions/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Traffic treatment model.
  */
-package org.onlab.onos.net.flow.instructions;
+package org.onosproject.net.flow.instructions;
diff --git a/core/api/src/main/java/org/onosproject/net/flow/package-info.java b/core/api/src/main/java/org/onosproject/net/flow/package-info.java
index 1b2e61b..4264ee9 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Flow rule model &amp; related services API definitions.
  */
-package org.onlab.onos.net.flow;
+package org.onosproject.net.flow;
diff --git a/core/api/src/main/java/org/onosproject/net/host/DefaultHostDescription.java b/core/api/src/main/java/org/onosproject/net/host/DefaultHostDescription.java
index c41a77c..1f05197 100644
--- a/core/api/src/main/java/org/onosproject/net/host/DefaultHostDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/host/DefaultHostDescription.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Collections;
 import java.util.Set;
 
-import org.onlab.onos.net.AbstractDescription;
-import org.onlab.onos.net.HostLocation;
-import org.onlab.onos.net.SparseAnnotations;
+import org.onosproject.net.AbstractDescription;
+import org.onosproject.net.HostLocation;
+import org.onosproject.net.SparseAnnotations;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java b/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
index c51a847..2b20313 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostAdminService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.HostId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.HostId;
 
 /**
  * Service for administering the inventory of end-station hosts.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostClockService.java b/core/api/src/main/java/org/onosproject/net/host/HostClockService.java
index 1020cbe..29cac80 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostClockService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostClockService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.store.Timestamp;
+import org.onosproject.net.HostId;
+import org.onosproject.store.Timestamp;
 
 /**
  * Interface for a logical clock service that issues per host timestamps.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostDescription.java b/core/api/src/main/java/org/onosproject/net/host/HostDescription.java
index 0b0244f..14c6f7a 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostDescription.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Set;
 
-import org.onlab.onos.net.Description;
-import org.onlab.onos.net.HostLocation;
+import org.onosproject.net.Description;
+import org.onosproject.net.HostLocation;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostEvent.java b/core/api/src/main/java/org/onosproject/net/host/HostEvent.java
index 76dd8e7..98329df 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostEvent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.net.Host;
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.net.Host;
 
 /**
  * Describes end-station host event.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostListener.java b/core/api/src/main/java/org/onosproject/net/host/HostListener.java
index f5e8d9a..2eef759 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostListener.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving end-station host related events.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostProvider.java b/core/api/src/main/java/org/onosproject/net/host/HostProvider.java
index 9f53bee..0270996 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostProvider.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.net.Host;
+import org.onosproject.net.provider.Provider;
 
 /**
  * Provider of information about hosts and their location on the network.
@@ -26,8 +26,8 @@
     /**
      * Triggers an asynchronous probe of the specified host, intended to
      * determine whether the host is present or not. An indirect result of this
-     * should be invocation of {@link org.onlab.onos.net.host.HostProviderService#hostDetected}
-     * or {@link org.onlab.onos.net.host.HostProviderService#hostVanished}
+     * should be invocation of {@link org.onosproject.net.host.HostProviderService#hostDetected}
+     * or {@link org.onosproject.net.host.HostProviderService#hostVanished}
      * at some later point in time.
      *
      * @param host host to probe
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/host/HostProviderRegistry.java
index bef7029..8ab600c 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of a host provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java b/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
index c704413..27b8c83 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostProviderService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.net.HostId;
+import org.onosproject.net.provider.ProviderService;
 
 /**
  * Means of conveying host information to the core.
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostService.java b/core/api/src/main/java/org/onosproject/net/host/HostService.java
index 7f7be50..183fe0b 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostService.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostService.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostStore.java b/core/api/src/main/java/org/onosproject/net/host/HostStore.java
index 0316dcf..4d3b707 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostStore.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostStore.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Host;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.store.Store;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Host;
+import org.onosproject.net.HostId;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.store.Store;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
diff --git a/core/api/src/main/java/org/onosproject/net/host/HostStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/host/HostStoreDelegate.java
index de0d69a..efc8423 100644
--- a/core/api/src/main/java/org/onosproject/net/host/HostStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/host/HostStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Infrastructure link store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/host/InterfaceIpAddress.java b/core/api/src/main/java/org/onosproject/net/host/InterfaceIpAddress.java
index 0cd9b5c..6885e23 100644
--- a/core/api/src/main/java/org/onosproject/net/host/InterfaceIpAddress.java
+++ b/core/api/src/main/java/org/onosproject/net/host/InterfaceIpAddress.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Objects;
 import org.onlab.packet.IpAddress;
diff --git a/core/api/src/main/java/org/onosproject/net/host/PortAddresses.java b/core/api/src/main/java/org/onosproject/net/host/PortAddresses.java
index 5e17e6c..543b1f4 100644
--- a/core/api/src/main/java/org/onosproject/net/host/PortAddresses.java
+++ b/core/api/src/main/java/org/onosproject/net/host/PortAddresses.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
 
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Objects;
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
+import org.onosproject.net.ConnectPoint;
 import org.onlab.packet.MacAddress;
 
 import com.google.common.base.MoreObjects;
diff --git a/core/api/src/main/java/org/onosproject/net/host/package-info.java b/core/api/src/main/java/org/onosproject/net/host/package-info.java
index 2609174..4f2bc7c 100644
--- a/core/api/src/main/java/org/onosproject/net/host/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/host/package-info.java
@@ -17,4 +17,4 @@
 /**
  * End-station host model &amp; related services API definitions.
  */
-package org.onlab.onos.net.host;
+package org.onosproject.net.host;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java b/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
index 9059522..b82fe56 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.NetworkResource;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.Link;
+import org.onosproject.net.NetworkResource;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/Constraint.java b/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
index 9004aa6..ca2acdc 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.resource.LinkResourceService;
 
 /**
  * Representation of a connectivity constraint capable of evaluating a link
diff --git a/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java b/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
index c65d19c..1a6c50a 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.HostId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.intent.constraint.LinkTypeConstraint;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.HostId;
+import org.onosproject.net.Link;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.intent.constraint.LinkTypeConstraint;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/Intent.java b/core/api/src/main/java/org/onosproject/net/intent/Intent.java
index 9fbab1a..0d0955f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/Intent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/Intent.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.IdGenerator;
-import org.onlab.onos.net.NetworkResource;
-import org.onlab.onos.net.flow.BatchOperationTarget;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.IdGenerator;
+import org.onosproject.net.NetworkResource;
+import org.onosproject.net.flow.BatchOperationTarget;
 
 import java.util.Collection;
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
index 248d82e..a2eceb6 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 /**
  * Facade for receiving notifications from the intent batch service.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchLeaderEvent.java b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchLeaderEvent.java
index cd5297f..b434218 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchLeaderEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchLeaderEvent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * A class to represent an intent related event.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchListener.java b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchListener.java
index fb5c600..c4a4637 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchListener.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchListener.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
- * Listener for {@link org.onlab.onos.net.intent.IntentEvent intent events}.
+ * Listener for {@link org.onosproject.net.intent.IntentEvent intent events}.
  */
 public interface IntentBatchListener extends EventListener<IntentBatchLeaderEvent> {
 }
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchService.java
index 246ece8..bf8e4fd 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchService.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.core.ApplicationId;
+import org.onosproject.core.ApplicationId;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java b/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
index 2d6d94b..4f0a55d 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.net.resource.LinkResourceAllocations;
+import org.onosproject.net.resource.LinkResourceAllocations;
 
 import java.util.List;
 import java.util.Set;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java b/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
index 37261e9..e3a0522 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * A class to represent an intent related event.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentException.java b/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
index 7bdfa10..d2675c7 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 /**
  * Represents an intent related error.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
index 2b578ff..cefcb90 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import java.util.Map;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentId.java b/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
index 2718e6e..0805f1f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.net.flow.BatchOperationTarget;
+import org.onosproject.net.flow.BatchOperationTarget;
 
 /**
  * Intent identifier suitable as an external key.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentInstaller.java b/core/api/src/main/java/org/onosproject/net/intent/IntentInstaller.java
index 5ef717f..6b9e35d 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentInstaller.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentInstaller.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.net.flow.FlowRuleBatchOperation;
+import org.onosproject.net.flow.FlowRuleBatchOperation;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java b/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
index 442d1df..c4a8367 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Listener for {@link IntentEvent intent events}.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java b/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
index e0cf677..c9fefc2 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentOperations.java b/core/api/src/main/java/org/onosproject/net/intent/IntentOperations.java
index c282a01..b668fcf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentOperations.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentOperations.java
@@ -13,20 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import java.util.List;
 import java.util.Objects;
 
 import com.google.common.collect.ImmutableList;
-import org.onlab.onos.core.ApplicationId;
+import org.onosproject.core.ApplicationId;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.onos.net.intent.IntentOperation.Type.REPLACE;
-import static org.onlab.onos.net.intent.IntentOperation.Type.SUBMIT;
-import static org.onlab.onos.net.intent.IntentOperation.Type.UPDATE;
-import static org.onlab.onos.net.intent.IntentOperation.Type.WITHDRAW;
+import static org.onosproject.net.intent.IntentOperation.Type.REPLACE;
+import static org.onosproject.net.intent.IntentOperation.Type.SUBMIT;
+import static org.onosproject.net.intent.IntentOperation.Type.UPDATE;
+import static org.onosproject.net.intent.IntentOperation.Type.WITHDRAW;
 
 /**
  * Batch of intent submit/withdraw/replace operations.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
index 9abb584..2b92bf8 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 
 import java.util.List;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentState.java b/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
index 4a534c1..0deabad 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 /**
  * Representation of the phases an intent may attain during its lifecycle.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
index 442a247..0199845 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import org.onlab.onos.net.intent.IntentStore.BatchWrite.Operation;
-import org.onlab.onos.store.Store;
+import org.onosproject.net.intent.IntentStore.BatchWrite.Operation;
+import org.onosproject.store.Store;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
index 6d491e4..bd2e6f5 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Intent store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java b/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
index 3f87b7e..4fedcec 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Link;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
index 416768b..1c751b9 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Sets;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
index 205fde6..9e12510 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
 
 /**
  * An optical layer intent for connectivity from one transponder port to another
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
index e12e339..7006b68 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import java.util.Collection;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.NetworkResource;
-import org.onlab.onos.net.Path;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Link;
+import org.onosproject.net.NetworkResource;
+import org.onosproject.net.Path;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
index a21509d..d84778a 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import java.util.Collections;
 import java.util.List;
@@ -21,11 +21,11 @@
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
index 28af4c7..4a725f6 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
@@ -13,16 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.intent.constraint.LinkTypeConstraint;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Link;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.intent.constraint.LinkTypeConstraint;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
index 8c806bd..8752c4a 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Sets;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.flow.TrafficSelector;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.flow.TrafficSelector;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import java.util.Collections;
 import java.util.Set;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
index 1767a41..6733296 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.util.Objects;
 
-import static org.onlab.onos.net.AnnotationKeys.getAnnotatedValue;
+import static org.onosproject.net.AnnotationKeys.getAnnotatedValue;
 
 /**
  * Constraint that evaluates an arbitrary link annotated value is under the specified threshold.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
index cfeb8f7..26ba61b 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
index fc08214..1e8e9d3 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.resource.Bandwidth;
-import org.onlab.onos.net.resource.BandwidthResourceRequest;
-import org.onlab.onos.net.resource.LinkResourceService;
-import org.onlab.onos.net.resource.ResourceRequest;
-import org.onlab.onos.net.resource.ResourceType;
+import org.onosproject.net.Link;
+import org.onosproject.net.resource.Bandwidth;
+import org.onosproject.net.resource.BandwidthResourceRequest;
+import org.onosproject.net.resource.LinkResourceService;
+import org.onosproject.net.resource.ResourceRequest;
+import org.onosproject.net.resource.ResourceType;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
index 4e9fc9a..1a46754 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.resource.LinkResourceService;
 
 /**
  * Abstract base class for various constraints that evaluate link viability
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
index ab88c92..dfca98b 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.resource.Lambda;
-import org.onlab.onos.net.resource.LinkResourceService;
-import org.onlab.onos.net.resource.ResourceRequest;
-import org.onlab.onos.net.resource.ResourceType;
+import org.onosproject.net.Link;
+import org.onosproject.net.resource.Lambda;
+import org.onosproject.net.resource.LinkResourceService;
+import org.onosproject.net.resource.ResourceRequest;
+import org.onosproject.net.resource.ResourceType;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
index e4b4432..c3f5488 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
@@ -13,20 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.time.Duration;
 import java.time.temporal.ChronoUnit;
 import java.util.Objects;
 
-import static org.onlab.onos.net.AnnotationKeys.LATENCY;
-import static org.onlab.onos.net.AnnotationKeys.getAnnotatedValue;
+import static org.onosproject.net.AnnotationKeys.LATENCY;
+import static org.onosproject.net.AnnotationKeys.getAnnotatedValue;
 
 /**
  * Constraint that evaluates the latency through a path.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
index 7d44b4d..21048cf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.Link;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.util.Objects;
 import java.util.Set;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
index 8472f3c..b6aceba 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.util.Collections;
 import java.util.Objects;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
index 9e3cc20..49a52ec 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.resource.LinkResourceService;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.resource.LinkResourceService;
 
 import java.util.Collections;
 import java.util.LinkedList;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/package-info.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/package-info.java
index 762d6d1..60d8df1 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Definitions of constraints used to refine intent specifications.
  */
-package org.onlab.onos.net.intent.constraint;
+package org.onosproject.net.intent.constraint;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/package-info.java b/core/api/src/main/java/org/onosproject/net/intent/package-info.java
index 03d4807..4bfbbea 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/package-info.java
@@ -75,4 +75,4 @@
  * performs global recomputation/optimization across all prior intents.
  * </p>
  */
-package org.onlab.onos.net.intent;
+package org.onosproject.net.intent;
diff --git a/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java b/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
index 986eb0a..891eb65 100644
--- a/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/link/DefaultLinkDescription.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.net.AbstractDescription;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.SparseAnnotations;
+import org.onosproject.net.AbstractDescription;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Link;
+import org.onosproject.net.SparseAnnotations;
 
 /**
  * Default implementation of immutable link description entity.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkAdminService.java b/core/api/src/main/java/org/onosproject/net/link/LinkAdminService.java
index 8517470..8ad8a07 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkAdminService.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkAdminService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
 
 /**
  * Service for administering the inventory of infrastructure links.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkDescription.java b/core/api/src/main/java/org/onosproject/net/link/LinkDescription.java
index 3078243..f85718b 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkDescription.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Description;
-import org.onlab.onos.net.Link;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Description;
+import org.onosproject.net.Link;
 
 /**
  * Describes an infrastructure link.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkEvent.java b/core/api/src/main/java/org/onosproject/net/link/LinkEvent.java
index 763e95e..d87bce0 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkEvent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.net.Link;
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.net.Link;
 
 /**
  * Describes infrastructure link event.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkListener.java b/core/api/src/main/java/org/onosproject/net/link/LinkListener.java
index 35d701b..82f6bdb 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkListener.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving infrastructure link related events.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkProvider.java b/core/api/src/main/java/org/onosproject/net/link/LinkProvider.java
index 7982089..ed4348c 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkProvider.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.net.provider.Provider;
 
 /**
  * Abstraction of an entity providing information about infrastructure links
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/link/LinkProviderRegistry.java
index 069433c..57a05d9 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of an infrastructure link provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkProviderService.java b/core/api/src/main/java/org/onosproject/net/link/LinkProviderService.java
index a512dd1..f5ef52a 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkProviderService.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.provider.ProviderService;
 
 /**
  * Means for injecting link information into the core.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkService.java b/core/api/src/main/java/org/onosproject/net/link/LinkService.java
index 58b01bf..5cae77b 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkService.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkService.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
 import java.util.Set;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
 
 /**
  * Service for interacting with the inventory of infrastructure links.
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkStore.java b/core/api/src/main/java/org/onosproject/net/link/LinkStore.java
index 3af4f9f..6955024 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkStore.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkStore.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.store.Store;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.store.Store;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/link/LinkStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/link/LinkStoreDelegate.java
index 6b3ca33..1f66dd4 100644
--- a/core/api/src/main/java/org/onosproject/net/link/LinkStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/link/LinkStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Infrastructure link store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/link/package-info.java b/core/api/src/main/java/org/onosproject/net/link/package-info.java
index 5465383..57aa5fa 100644
--- a/core/api/src/main/java/org/onosproject/net/link/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/link/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Infrastructure link model &amp; related services API definitions.
  */
-package org.onlab.onos.net.link;
+package org.onosproject.net.link;
diff --git a/core/api/src/main/java/org/onosproject/net/package-info.java b/core/api/src/main/java/org/onosproject/net/package-info.java
index 28c6aa3..34b4de2 100644
--- a/core/api/src/main/java/org/onosproject/net/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Network model entities &amp; service API definitions.
  */
-package org.onlab.onos.net;
+package org.onosproject.net;
diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
index 68e08ad..96f872f 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultInboundPacket.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.ConnectPoint;
+import org.onosproject.net.ConnectPoint;
 import org.onlab.packet.Ethernet;
 
 import java.nio.ByteBuffer;
diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultOutboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultOutboundPacket.java
index 624f0d8..5bd4c98 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultOutboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultOutboundPacket.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
 import java.nio.ByteBuffer;
 import java.util.Objects;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
index 9a0eac3..eba8e8e 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/DefaultPacketContext.java
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.onlab.onos.net.flow.DefaultTrafficTreatment;
-import org.onlab.onos.net.flow.TrafficTreatment;
-import org.onlab.onos.net.flow.TrafficTreatment.Builder;
+import org.onosproject.net.flow.DefaultTrafficTreatment;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.flow.TrafficTreatment.Builder;
 
 
 public abstract class DefaultPacketContext implements PacketContext {
diff --git a/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
index b0a2fdb..3fd5814 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/InboundPacket.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.ConnectPoint;
+import org.onosproject.net.ConnectPoint;
 import org.onlab.packet.Ethernet;
 
 import java.nio.ByteBuffer;
diff --git a/core/api/src/main/java/org/onosproject/net/packet/OutboundPacket.java b/core/api/src/main/java/org/onosproject/net/packet/OutboundPacket.java
index 00224c9..9e9329f 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/OutboundPacket.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/OutboundPacket.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.flow.TrafficTreatment;
 
 import java.nio.ByteBuffer;
 
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketContext.java b/core/api/src/main/java/org/onosproject/net/packet/PacketContext.java
index 3e1b3c7..004adc87 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketContext.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketContext.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.flow.TrafficTreatment;
+import org.onosproject.net.flow.TrafficTreatment;
 
 /**
  * Represents context for processing an inbound packet, and (optionally)
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketEvent.java b/core/api/src/main/java/org/onosproject/net/packet/PacketEvent.java
index e604e53..7b0a5ed 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketEvent.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes a packet event.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketProcessor.java b/core/api/src/main/java/org/onosproject/net/packet/PacketProcessor.java
index 9735c33..a0516be 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketProcessor.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketProcessor.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
 
 
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketProvider.java b/core/api/src/main/java/org/onosproject/net/packet/PacketProvider.java
index 4c8aac9..8d55f0d 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketProvider.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.net.provider.Provider;
 
 /**
  * Abstraction of a packet provider capable of emitting packets.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/packet/PacketProviderRegistry.java
index 9efc9d7..6e73253 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of an infrastructure packet provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketProviderService.java b/core/api/src/main/java/org/onosproject/net/packet/PacketProviderService.java
index 1fb2f14..1aaee65 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketProviderService.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.net.provider.ProviderService;
 
 /**
  * Entity capable of processing inbound packets.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketService.java b/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
index 721cb46..d4780e1 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
 /**
  * Service for intercepting data plane packets and for emitting synthetic
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketStore.java b/core/api/src/main/java/org/onosproject/net/packet/PacketStore.java
index 6d00d65..c38605d 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketStore.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketStore.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.store.Store;
+import org.onosproject.store.Store;
 
 /**
  * Manages routing of outbound packets.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/PacketStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/packet/PacketStoreDelegate.java
index 6e19ad2..bf5c3cc 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/PacketStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/PacketStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Packet store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/packet/package-info.java b/core/api/src/main/java/org/onosproject/net/packet/package-info.java
index f2b760e..0b9ea37 100644
--- a/core/api/src/main/java/org/onosproject/net/packet/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/packet/package-info.java
@@ -18,4 +18,4 @@
  * Mechanism for processing inbound packets intercepted from the data plane and
  * for emitting outbound packets onto the data plane.
  */
-package org.onlab.onos.net.packet;
+package org.onosproject.net.packet;
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
index acf9f3e..a4926dd 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractProvider.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 /**
  * Base provider implementation.
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
index c4a3234..bcf5fae 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderRegistry.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderService.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderService.java
index 88932f4..6c926d8 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractProviderService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 import static com.google.common.base.Preconditions.checkState;
 
diff --git a/core/api/src/main/java/org/onosproject/net/provider/Provider.java b/core/api/src/main/java/org/onosproject/net/provider/Provider.java
index 8b6e187..84465ab 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/Provider.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/Provider.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 /**
  * Abstraction of a provider of information about network environment.
diff --git a/core/api/src/main/java/org/onosproject/net/provider/ProviderId.java b/core/api/src/main/java/org/onosproject/net/provider/ProviderId.java
index 62207d9..2c959af 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/ProviderId.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/ProviderId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 import java.util.Objects;
 
@@ -21,7 +21,7 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * External identity of a {@link org.onlab.onos.net.provider.Provider} family.
+ * External identity of a {@link org.onosproject.net.provider.Provider} family.
  * It also carriers two designations of external characteristics, the URI
  * scheme and primary/ancillary indicator.
  * <p>
@@ -30,7 +30,7 @@
  * a provider as a primary or ancillary.
  * </p>
  * <p>
- * A {@link org.onlab.onos.net.provider.ProviderRegistry} uses this designation
+ * A {@link org.onosproject.net.provider.ProviderRegistry} uses this designation
  * to permit only one primary provider per device URI scheme. Multiple
  * ancillary providers can register with the same device URI scheme however.
  * </p>
@@ -56,7 +56,7 @@
     /**
      * Creates a new primary provider identifier from the specified string.
      * The providers are expected to follow the reverse DNS convention, e.g.
-     * {@code org.onlab.onos.provider.of.device}
+     * {@code org.onosproject.provider.of.device}
      *
      * @param scheme device URI scheme to which this provider is bound, e.g. "of", "snmp"
      * @param id     string identifier
@@ -68,7 +68,7 @@
     /**
      * Creates a new provider identifier from the specified string.
      * The providers are expected to follow the reverse DNS convention, e.g.
-     * {@code org.onlab.onos.provider.of.device}
+     * {@code org.onosproject.provider.of.device}
      *
      * @param scheme    device URI scheme to which this provider is bound, e.g. "of", "snmp"
      * @param id        string identifier
diff --git a/core/api/src/main/java/org/onosproject/net/provider/ProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/provider/ProviderRegistry.java
index 8cab8a8..3c2009a 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/ProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/ProviderRegistry.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/provider/ProviderService.java b/core/api/src/main/java/org/onosproject/net/provider/ProviderService.java
index 709f1c1..5c46927 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/ProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/ProviderService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
 
 /**
  * Abstraction of a service through which providers can inject information
diff --git a/core/api/src/main/java/org/onosproject/net/provider/package-info.java b/core/api/src/main/java/org/onosproject/net/provider/package-info.java
index 4406cee..d279f56 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Base abstractions related to network entity providers and their brokers.
  */
-package org.onlab.onos.net.provider;
+package org.onosproject.net.provider;
diff --git a/core/api/src/main/java/org/onosproject/net/proxyarp/ProxyArpService.java b/core/api/src/main/java/org/onosproject/net/proxyarp/ProxyArpService.java
index 509c6ac..8ed4a61 100644
--- a/core/api/src/main/java/org/onosproject/net/proxyarp/ProxyArpService.java
+++ b/core/api/src/main/java/org/onosproject/net/proxyarp/ProxyArpService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.proxyarp;
+package org.onosproject.net.proxyarp;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.packet.PacketContext;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.packet.PacketContext;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.Ip4Address;
 
diff --git a/core/api/src/main/java/org/onosproject/net/proxyarp/package-info.java b/core/api/src/main/java/org/onosproject/net/proxyarp/package-info.java
index 95ad6f5..6ddd492 100644
--- a/core/api/src/main/java/org/onosproject/net/proxyarp/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/proxyarp/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Base abstractions related to the proxy arp service.
  */
-package org.onlab.onos.net.proxyarp;
+package org.onosproject.net.proxyarp;
diff --git a/core/api/src/main/java/org/onosproject/net/resource/Bandwidth.java b/core/api/src/main/java/org/onosproject/net/resource/Bandwidth.java
index 8b84059..19ceff4 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/Bandwidth.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/Bandwidth.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceAllocation.java b/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceAllocation.java
index 62051ad..b2628aa 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceAllocation.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceAllocation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceRequest.java
index 52b4112..9acd200 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/BandwidthResourceRequest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceAllocations.java b/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceAllocations.java
index 51515e7..b2c8fa1 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceAllocations.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceAllocations.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -21,8 +21,8 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.intent.IntentId;
+import org.onosproject.net.Link;
+import org.onosproject.net.intent.IntentId;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceRequest.java
index c3f5c28..f4169de 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/DefaultLinkResourceRequest.java
@@ -13,19 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.intent.IntentId;
+import org.onosproject.net.Link;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.intent.IntentId;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.net.intent.constraint.BandwidthConstraint;
-import org.onlab.onos.net.intent.constraint.LambdaConstraint;
+import org.onosproject.net.intent.constraint.BandwidthConstraint;
+import org.onosproject.net.intent.constraint.LambdaConstraint;
 
 /**
  * Implementation of {@link LinkResourceRequest}.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/Lambda.java b/core/api/src/main/java/org/onosproject/net/resource/Lambda.java
index d179d64..be03254 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/Lambda.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/Lambda.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
index 9032cc4..e564059 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceRequest.java
index dab8793..de64a17 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceRequest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResource.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResource.java
index 58935a4..2c83dab 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResource.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResource.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 /**
  * Abstraction of link resource.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceAllocations.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceAllocations.java
index 7bd8a02..ebca82a 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceAllocations.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceAllocations.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Set;
 
-import org.onlab.onos.net.Link;
+import org.onosproject.net.Link;
 
 /**
  * Representation of allocated link resources.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceEvent.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceEvent.java
index 0428864..d98e9c4 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceEvent.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Collection;
 
-import org.onlab.onos.event.AbstractEvent;
+import org.onosproject.event.AbstractEvent;
 
 import com.google.common.collect.ImmutableList;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceListener.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceListener.java
index 11aacc1..80545b4 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceListener.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity for receiving link resource events.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceRequest.java
index 23a0c30..1172401 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceRequest.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Collection;
 import java.util.Set;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.intent.Constraint;
-import org.onlab.onos.net.intent.IntentId;
+import org.onosproject.net.Link;
+import org.onosproject.net.intent.Constraint;
+import org.onosproject.net.intent.IntentId;
 
 /**
  * Representation of a request for link resource.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceService.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceService.java
index b4dfa62..1d1e697 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceService.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.intent.IntentId;
+import org.onosproject.net.Link;
+import org.onosproject.net.intent.IntentId;
 
 /**
  * Service for providing link resource allocation.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStore.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStore.java
index 79f7a3e..0ddf38e 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStore.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStore.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Set;
 
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.intent.IntentId;
+import org.onosproject.net.Link;
+import org.onosproject.net.intent.IntentId;
 
 /**
  * Manages link resources.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStoreDelegate.java
index be12e04..e108349 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResourceStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Link resource store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LinkResources.java b/core/api/src/main/java/org/onosproject/net/resource/LinkResources.java
index e305cea..7352afa 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LinkResources.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LinkResources.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceAllocation.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceAllocation.java
index ea3ce99..c1f3372 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceAllocation.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceAllocation.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 /**
  * Abstraction of allocated resource.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceId.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceId.java
index 28a502e..3fbe1d7 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 /**
  * Representation of ID for allocated resource.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceRequest.java
index 75b983d..0d9e61e 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceRequest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 /**
  * Abstraction of resource request.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/ResourceType.java b/core/api/src/main/java/org/onosproject/net/resource/ResourceType.java
index 98d9b84..1ad0dde 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/ResourceType.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/ResourceType.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
 
 /**
  * Represents types for link resources.
diff --git a/core/api/src/main/java/org/onosproject/net/resource/package-info.java b/core/api/src/main/java/org/onosproject/net/resource/package-info.java
index 98ffbc6..a9b6035 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Services for reserving network resources, e.g.&nbsp;bandwidth, lambdas.
  */
-package org.onlab.onos.net.resource;
+package org.onosproject.net.resource;
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java b/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
index b2771ac..908e7eb 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/DefaultLoad.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.statistic;
+package org.onosproject.net.statistic;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.net.flow.FlowRuleProvider;
+import org.onosproject.net.flow.FlowRuleProvider;
 
 /**
  * Implementation of a load.
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/Load.java b/core/api/src/main/java/org/onosproject/net/statistic/Load.java
index 6422cb3..38fed04 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/Load.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/Load.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.statistic;
+package org.onosproject.net.statistic;
 
 /**
  * Simple data repository for link load information.
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java b/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java
index de59886..b9f7cc9 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/StatisticService.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.statistic;
+package org.onosproject.net.statistic;
 
-import org.onlab.onos.core.ApplicationId;
-import org.onlab.onos.core.GroupId;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.flow.FlowRule;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.core.GroupId;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.flow.FlowRule;
 
 import java.util.Optional;
 
@@ -35,7 +35,7 @@
      * Obtain the load for a the ingress to the given link.
      *
      * @param link the link to query.
-     * @return a {@link org.onlab.onos.net.statistic.Load Load}
+     * @return a {@link org.onosproject.net.statistic.Load Load}
      */
     Load load(Link link);
 
@@ -43,7 +43,7 @@
      * Obtain the load for the given port.
      *
      * @param connectPoint the port to query
-     * @return a {@link org.onlab.onos.net.statistic.Load}
+     * @return a {@link org.onosproject.net.statistic.Load}
      */
     Load load(ConnectPoint connectPoint);
 
@@ -51,7 +51,7 @@
      * Find the most loaded link along a path.
      *
      * @param path the path to search in
-     * @return the most loaded {@link org.onlab.onos.net.Link}.
+     * @return the most loaded {@link org.onosproject.net.Link}.
      */
     Link max(Path path);
 
@@ -59,7 +59,7 @@
      * Find the least loaded link along a path.
      *
      * @param path the path to search in
-     * @return the least loaded {@link org.onlab.onos.net.Link}.
+     * @return the least loaded {@link org.onosproject.net.Link}.
      */
     Link min(Path path);
 
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java b/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java
index 6eefdbe..8566ef5 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/StatisticStore.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.statistic;
+package org.onosproject.net.statistic;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.flow.FlowEntry;
-import org.onlab.onos.net.flow.FlowRule;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.flow.FlowEntry;
+import org.onosproject.net.flow.FlowRule;
 
 import java.util.Set;
 
@@ -29,21 +29,21 @@
     /**
      * Lay the foundation for receiving flow stats for this rule.
      *
-     * @param rule a {@link org.onlab.onos.net.flow.FlowRule}
+     * @param rule a {@link org.onosproject.net.flow.FlowRule}
      */
     void prepareForStatistics(FlowRule rule);
 
     /**
      * Remove entries associated with this rule.
      *
-     * @param rule {@link org.onlab.onos.net.flow.FlowRule}
+     * @param rule {@link org.onosproject.net.flow.FlowRule}
      */
     void removeFromStatistics(FlowRule rule);
 
     /**
      * Adds a stats observation for a flow rule.
      *
-     * @param rule a {@link org.onlab.onos.net.flow.FlowEntry}
+     * @param rule a {@link org.onosproject.net.flow.FlowEntry}
      */
     void addOrUpdateStatistic(FlowEntry rule);
 
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/package-info.java b/core/api/src/main/java/org/onosproject/net/statistic/package-info.java
index 26b6ad9..37889f3 100644
--- a/core/api/src/main/java/org/onosproject/net/statistic/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/statistic/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Service for looking up statistics on links.
  */
-package org.onlab.onos.net.statistic;
\ No newline at end of file
+package org.onosproject.net.statistic;
diff --git a/core/api/src/main/java/org/onosproject/net/topology/ClusterId.java b/core/api/src/main/java/org/onosproject/net/topology/ClusterId.java
index 0a52062..676f006 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/ClusterId.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/ClusterId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java b/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
index 5e4d050..0be8ae4 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/DefaultGraphDescription.java
@@ -13,19 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import static org.slf4j.LoggerFactory.getLogger;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Maps;
 
-import org.onlab.onos.net.AbstractDescription;
-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.SparseAnnotations;
+import org.onosproject.net.AbstractDescription;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.Device;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.SparseAnnotations;
 import org.slf4j.Logger;
 
 import java.util.Map;
diff --git a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyCluster.java b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyCluster.java
index 190a392..9eadec1 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyCluster.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyCluster.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyEdge.java b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyEdge.java
index f6de3fe..dacb5fd 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyEdge.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyEdge.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.Link;
+import org.onosproject.net.Link;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyVertex.java b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyVertex.java
index c261fb0..07a09cb 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyVertex.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/DefaultTopologyVertex.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/GraphDescription.java b/core/api/src/main/java/org/onosproject/net/topology/GraphDescription.java
index fcbe975..3a243df 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/GraphDescription.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/GraphDescription.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.net.Description;
+import org.onosproject.net.Description;
 
 /**
  * Describes attribute(s) of a network graph.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/LinkWeight.java b/core/api/src/main/java/org/onosproject/net/topology/LinkWeight.java
index 5f3becd..a19abd4 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/LinkWeight.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/LinkWeight.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import org.onlab.graph.EdgeWeight;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/PathService.java b/core/api/src/main/java/org/onosproject/net/topology/PathService.java
index 1719285..be8c7cf 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/PathService.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/PathService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.ElementId;
-import org.onlab.onos.net.Path;
+import org.onosproject.net.ElementId;
+import org.onosproject.net.Path;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/Topology.java b/core/api/src/main/java/org/onosproject/net/topology/Topology.java
index 182db10..d64f0b6 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/Topology.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/Topology.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.Provided;
+import org.onosproject.net.Provided;
 
 /**
  * Represents a network topology computation snapshot.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyCluster.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyCluster.java
index 05668b4..fe93c91 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyCluster.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyCluster.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 /**
  * Representation of an SCC (strongly-connected component) in a network topology.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyEdge.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyEdge.java
index 15ad81b..008c8c4 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyEdge.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyEdge.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import org.onlab.graph.Edge;
-import org.onlab.onos.net.Link;
+import org.onosproject.net.Link;
 
 /**
  * Represents an edge in the topology graph.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyEvent.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyEvent.java
index 38b9c13..10c8dfc 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyEvent.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.event.Event;
+import org.onosproject.event.AbstractEvent;
+import org.onosproject.event.Event;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyGraph.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyGraph.java
index c47bcc2..f3565fa 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyGraph.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyGraph.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import org.onlab.graph.Graph;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyListener.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyListener.java
index 39e7626..625587b 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyListener.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyListener.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.event.EventListener;
+import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving network topology related events.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyProvider.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyProvider.java
index c96ce58..f52b798 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyProvider.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyProvider.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.provider.Provider;
+import org.onosproject.net.provider.Provider;
 
 /**
  * Means for injecting topology information into the core.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderRegistry.java
index 7c59bce..15eeed4 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderRegistry.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.provider.ProviderRegistry;
+import org.onosproject.net.provider.ProviderRegistry;
 
 /**
  * Abstraction of a network topology provider registry.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderService.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderService.java
index 985a0cb..742110a 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderService.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyProviderService.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.event.Event;
-import org.onlab.onos.net.provider.ProviderService;
+import org.onosproject.event.Event;
+import org.onosproject.net.provider.ProviderService;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
index 5d8bbdf..b17deb3 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
 
 import java.util.Set;
 
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
index bdce044..983e616 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.event.Event;
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.Link;
-import org.onlab.onos.net.Path;
-import org.onlab.onos.net.provider.ProviderId;
-import org.onlab.onos.store.Store;
+import org.onosproject.event.Event;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
+import org.onosproject.net.Path;
+import org.onosproject.net.provider.ProviderId;
+import org.onosproject.store.Store;
 
 import java.util.List;
 import java.util.Set;
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyStoreDelegate.java
index 25bbdca..c425970 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyStoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
-import org.onlab.onos.store.StoreDelegate;
+import org.onosproject.store.StoreDelegate;
 
 /**
  * Topology store delegate abstraction.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/TopologyVertex.java b/core/api/src/main/java/org/onosproject/net/topology/TopologyVertex.java
index f858953..9f37dcb 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/TopologyVertex.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/TopologyVertex.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
 
 import org.onlab.graph.Vertex;
-import org.onlab.onos.net.DeviceId;
+import org.onosproject.net.DeviceId;
 
 /**
  * Represents a vertex in the topology graph.
diff --git a/core/api/src/main/java/org/onosproject/net/topology/package-info.java b/core/api/src/main/java/org/onosproject/net/topology/package-info.java
index 02d3db3..3cd6ceb 100644
--- a/core/api/src/main/java/org/onosproject/net/topology/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/topology/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Network topology model &amp; related services API definitions.
  */
-package org.onlab.onos.net.topology;
+package org.onosproject.net.topology;
diff --git a/core/api/src/main/java/org/onosproject/store/AbstractStore.java b/core/api/src/main/java/org/onosproject/store/AbstractStore.java
index 7d95fbe..a3005e4 100644
--- a/core/api/src/main/java/org/onosproject/store/AbstractStore.java
+++ b/core/api/src/main/java/org/onosproject/store/AbstractStore.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store;
+package org.onosproject.store;
 
 import java.util.List;
 
-import org.onlab.onos.event.Event;
+import org.onosproject.event.Event;
 
 import static com.google.common.base.Preconditions.checkState;
 
diff --git a/core/api/src/main/java/org/onosproject/store/Store.java b/core/api/src/main/java/org/onosproject/store/Store.java
index 6118ea5..8d5b53c 100644
--- a/core/api/src/main/java/org/onosproject/store/Store.java
+++ b/core/api/src/main/java/org/onosproject/store/Store.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store;
+package org.onosproject.store;
 
-import org.onlab.onos.event.Event;
+import org.onosproject.event.Event;
 
 /**
  * Abstraction of a entity capable of storing and/or distributing information
diff --git a/core/api/src/main/java/org/onosproject/store/StoreDelegate.java b/core/api/src/main/java/org/onosproject/store/StoreDelegate.java
index 0bcd814..71ca8cc 100644
--- a/core/api/src/main/java/org/onosproject/store/StoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/store/StoreDelegate.java
@@ -13,9 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store;
+package org.onosproject.store;
 
-import org.onlab.onos.event.Event;
+import org.onosproject.event.Event;
 
 /**
  * Entity associated with a store and capable of receiving notifications of
diff --git a/core/api/src/main/java/org/onosproject/store/Timestamp.java b/core/api/src/main/java/org/onosproject/store/Timestamp.java
index ab3e3cb..67c01b1 100644
--- a/core/api/src/main/java/org/onosproject/store/Timestamp.java
+++ b/core/api/src/main/java/org/onosproject/store/Timestamp.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store;
+package org.onosproject.store;
 
 /**
  * Opaque version structure.
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
index 2763eff..6db5abf 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterCommunicationService.java
@@ -13,12 +13,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store.cluster.messaging;
+package org.onosproject.store.cluster.messaging;
 
 import java.io.IOException;
 import java.util.Set;
 
-import org.onlab.onos.cluster.NodeId;
+import org.onosproject.cluster.NodeId;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessage.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessage.java
index 3aa30dc..5b60e4d 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessage.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessage.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store.cluster.messaging;
+package org.onosproject.store.cluster.messaging;
 
 import java.io.IOException;
 
-import org.onlab.onos.cluster.NodeId;
+import org.onosproject.cluster.NodeId;
 import org.onlab.util.ByteArraySizeHashPrinter;
 
 import com.google.common.base.MoreObjects;
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessageHandler.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessageHandler.java
index 7bc0cb1..19c7dda 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessageHandler.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/ClusterMessageHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store.cluster.messaging;
+package org.onosproject.store.cluster.messaging;
 
 /**
  * Interface for handling cluster messages.
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/MessageSubject.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/MessageSubject.java
index 77afd22..d81e6f1 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/MessageSubject.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/MessageSubject.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.onlab.onos.store.cluster.messaging;
+package org.onosproject.store.cluster.messaging;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
diff --git a/core/api/src/main/java/org/onosproject/store/cluster/messaging/package-info.java b/core/api/src/main/java/org/onosproject/store/cluster/messaging/package-info.java
index 59e8cd0..582c50e 100644
--- a/core/api/src/main/java/org/onosproject/store/cluster/messaging/package-info.java
+++ b/core/api/src/main/java/org/onosproject/store/cluster/messaging/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Cluster messaging APIs for the use by the various distributed stores.
  */
-package org.onlab.onos.store.cluster.messaging;
+package org.onosproject.store.cluster.messaging;
diff --git a/core/api/src/main/java/org/onosproject/store/package-info.java b/core/api/src/main/java/org/onosproject/store/package-info.java
index 9d96863..b6269ea 100644
--- a/core/api/src/main/java/org/onosproject/store/package-info.java
+++ b/core/api/src/main/java/org/onosproject/store/package-info.java
@@ -17,4 +17,4 @@
 /**
  * Abstractions for creating and interacting with distributed stores.
  */
-package org.onlab.onos.store;
+package org.onosproject.store;
diff --git a/core/api/src/main/java/org/onosproject/store/service/BatchReadRequest.java b/core/api/src/main/java/org/onosproject/store/service/BatchReadRequest.java
index 7cab847..ce08640 100644
--- a/core/api/src/main/java/org/onosproject/store/service/BatchReadRequest.java
+++ b/core/api/src/main/java/org/onosproject/store/service/BatchReadRequest.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/BatchReadResult.java b/core/api/src/main/java/org/onosproject/store/service/BatchReadResult.java
index b12aa16..2b8da75 100644
--- a/core/api/src/main/java/org/onosproject/store/service/BatchReadResult.java
+++ b/core/api/src/main/java/org/onosproject/store/service/BatchReadResult.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/BatchWriteRequest.java b/core/api/src/main/java/org/onosproject/store/service/BatchWriteRequest.java
index e6ff26e..7686c7c 100644
--- a/core/api/src/main/java/org/onosproject/store/service/BatchWriteRequest.java
+++ b/core/api/src/main/java/org/onosproject/store/service/BatchWriteRequest.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/BatchWriteResult.java b/core/api/src/main/java/org/onosproject/store/service/BatchWriteResult.java
index fa2e7c4..805c8fc 100644
--- a/core/api/src/main/java/org/onosproject/store/service/BatchWriteResult.java
+++ b/core/api/src/main/java/org/onosproject/store/service/BatchWriteResult.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.List;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/DatabaseAdminService.java b/core/api/src/main/java/org/onosproject/store/service/DatabaseAdminService.java
index ef7ea67..8a00fe4 100644
--- a/core/api/src/main/java/org/onosproject/store/service/DatabaseAdminService.java
+++ b/core/api/src/main/java/org/onosproject/store/service/DatabaseAdminService.java
@@ -1,10 +1,10 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.Collection;
 import java.util.Optional;
 import java.util.Set;
 
-import org.onlab.onos.cluster.ControllerNode;
+import org.onosproject.cluster.ControllerNode;
 
 /**
  * Service interface for running administrative tasks on a Database.
diff --git a/core/api/src/main/java/org/onosproject/store/service/DatabaseException.java b/core/api/src/main/java/org/onosproject/store/service/DatabaseException.java
index 1468d1b..26a28b0 100644
--- a/core/api/src/main/java/org/onosproject/store/service/DatabaseException.java
+++ b/core/api/src/main/java/org/onosproject/store/service/DatabaseException.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * Base exception type for database failures.
@@ -33,4 +33,4 @@
             super(t);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/store/service/DatabaseService.java b/core/api/src/main/java/org/onosproject/store/service/DatabaseService.java
index b5a56a1..2dec72d 100644
--- a/core/api/src/main/java/org/onosproject/store/service/DatabaseService.java
+++ b/core/api/src/main/java/org/onosproject/store/service/DatabaseService.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.Map;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/Lock.java b/core/api/src/main/java/org/onosproject/store/service/Lock.java
index 7558ae2..6b9ea8e 100644
--- a/core/api/src/main/java/org/onosproject/store/service/Lock.java
+++ b/core/api/src/main/java/org/onosproject/store/service/Lock.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.concurrent.CompletableFuture;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/LockEventListener.java b/core/api/src/main/java/org/onosproject/store/service/LockEventListener.java
index 73f78fe..4929dde 100644
--- a/core/api/src/main/java/org/onosproject/store/service/LockEventListener.java
+++ b/core/api/src/main/java/org/onosproject/store/service/LockEventListener.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * Listener for lock events.
diff --git a/core/api/src/main/java/org/onosproject/store/service/LockService.java b/core/api/src/main/java/org/onosproject/store/service/LockService.java
index a4ac30b..c123273 100644
--- a/core/api/src/main/java/org/onosproject/store/service/LockService.java
+++ b/core/api/src/main/java/org/onosproject/store/service/LockService.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * Service interface for mutual exclusion primitives.
@@ -25,4 +25,4 @@
      * @param listener listener to be removed.
      */
     void removeListener(LockEventListener listener);
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/store/service/NoSuchTableException.java b/core/api/src/main/java/org/onosproject/store/service/NoSuchTableException.java
index 6e02252..785685f 100644
--- a/core/api/src/main/java/org/onosproject/store/service/NoSuchTableException.java
+++ b/core/api/src/main/java/org/onosproject/store/service/NoSuchTableException.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 
 /**
@@ -7,4 +7,4 @@
  */
 @SuppressWarnings("serial")
 public class NoSuchTableException extends DatabaseException {
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/store/service/OptionalResult.java b/core/api/src/main/java/org/onosproject/store/service/OptionalResult.java
index a9341cb..88ba273 100644
--- a/core/api/src/main/java/org/onosproject/store/service/OptionalResult.java
+++ b/core/api/src/main/java/org/onosproject/store/service/OptionalResult.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * A container object which either has a result or an exception.
diff --git a/core/api/src/main/java/org/onosproject/store/service/ReadRequest.java b/core/api/src/main/java/org/onosproject/store/service/ReadRequest.java
index f30529e..b1ec06f 100644
--- a/core/api/src/main/java/org/onosproject/store/service/ReadRequest.java
+++ b/core/api/src/main/java/org/onosproject/store/service/ReadRequest.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -75,4 +75,4 @@
         return Objects.equals(this.key, other.key) &&
                 Objects.equals(this.tableName, other.tableName);
     }
-}
\ No newline at end of file
+}
diff --git a/core/api/src/main/java/org/onosproject/store/service/ReadResult.java b/core/api/src/main/java/org/onosproject/store/service/ReadResult.java
index 868dda5..3e13b0b 100644
--- a/core/api/src/main/java/org/onosproject/store/service/ReadResult.java
+++ b/core/api/src/main/java/org/onosproject/store/service/ReadResult.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/ReadStatus.java b/core/api/src/main/java/org/onosproject/store/service/ReadStatus.java
index 67d8a57..128ce09 100644
--- a/core/api/src/main/java/org/onosproject/store/service/ReadStatus.java
+++ b/core/api/src/main/java/org/onosproject/store/service/ReadStatus.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * Status of completed read request.
diff --git a/core/api/src/main/java/org/onosproject/store/service/VersionedValue.java b/core/api/src/main/java/org/onosproject/store/service/VersionedValue.java
index 9a78252..d224309 100644
--- a/core/api/src/main/java/org/onosproject/store/service/VersionedValue.java
+++ b/core/api/src/main/java/org/onosproject/store/service/VersionedValue.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import java.util.Arrays;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/WriteRequest.java b/core/api/src/main/java/org/onosproject/store/service/WriteRequest.java
index d687fa5..123b5c8 100644
--- a/core/api/src/main/java/org/onosproject/store/service/WriteRequest.java
+++ b/core/api/src/main/java/org/onosproject/store/service/WriteRequest.java
@@ -1,8 +1,8 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.onos.store.service.WriteRequest.Type.*;
+import static org.onosproject.store.service.WriteRequest.Type.*;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/WriteResult.java b/core/api/src/main/java/org/onosproject/store/service/WriteResult.java
index 3f61061..4a2b8bc 100644
--- a/core/api/src/main/java/org/onosproject/store/service/WriteResult.java
+++ b/core/api/src/main/java/org/onosproject/store/service/WriteResult.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/core/api/src/main/java/org/onosproject/store/service/WriteStatus.java b/core/api/src/main/java/org/onosproject/store/service/WriteStatus.java
index 9f3e999..9d584c2 100644
--- a/core/api/src/main/java/org/onosproject/store/service/WriteStatus.java
+++ b/core/api/src/main/java/org/onosproject/store/service/WriteStatus.java
@@ -1,4 +1,4 @@
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
 /**
  * Status of completed write request.
diff --git a/core/api/src/main/java/org/onosproject/store/service/package-info.java b/core/api/src/main/java/org/onosproject/store/service/package-info.java
index 5f65452..3d86e35 100644
--- a/core/api/src/main/java/org/onosproject/store/service/package-info.java
+++ b/core/api/src/main/java/org/onosproject/store/service/package-info.java
@@ -17,5 +17,5 @@
 /**
  * Distributed core state management services.
  */
-package org.onlab.onos.store.service;
+package org.onosproject.store.service;
 
