Refactor of CFM code part2 - API

Change-Id: Id1407e140b561fbe7ab79e0726f50e9276f3e20b
diff --git a/apps/cfm/BUCK b/apps/cfm/BUCK
index 6f1cef6..687badd 100644
--- a/apps/cfm/BUCK
+++ b/apps/cfm/BUCK
@@ -1,6 +1,6 @@
 BUNDLES = [
-#    '//apps/cfm/api:onos-apps-cfm-api',
-#    '//apps/cfm/app:onos-apps-cfm-app',
+    '//apps/cfm/api:onos-apps-cfm-api',
+    '//apps/cfm/app:onos-apps-cfm-app',
     '//apps/cfm/nbi:onos-apps-cfm-nbi',
 ]
 
diff --git a/apps/cfm/api/BUCK b/apps/cfm/api/BUCK
new file mode 100644
index 0000000..ab6251e
--- /dev/null
+++ b/apps/cfm/api/BUCK
@@ -0,0 +1,14 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+]
+
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+]
+
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
+    visibility = ['PUBLIC'],
+)
+
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/README.md b/apps/cfm/api/README.md
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/README.md
rename to apps/cfm/api/README.md
diff --git a/apps/cfm/api/pom.xml b/apps/cfm/api/pom.xml
new file mode 100644
index 0000000..06c0a95
--- /dev/null
+++ b/apps/cfm/api/pom.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2018-present Open Networking Foundation
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>onos-apps-cfm</artifactId>
+        <groupId>org.onosproject</groupId>
+        <version>1.13.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>onos-apps-cfm-api</artifactId>
+
+    <packaging>bundle</packaging>
+    <description>API for CFM applications</description>
+    <version>1.13.0-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-misc</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+            <scope>test</scope>
+            <classifier>tests</classifier>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
+
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Component.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Component.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Component.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Component.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultComponent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultComponent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultComponent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultComponent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceAssociation.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceAssociation.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceAssociation.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceAssociation.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceDomain.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceDomain.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceDomain.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMaintenanceDomain.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMep.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMep.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMep.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMep.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLbEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLtCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLtCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLtCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultMepLtCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultRemoteMepEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultRemoteMepEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultRemoteMepEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/DefaultRemoteMepEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociation.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociation.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociation.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociation.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomain.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomain.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomain.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomain.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Mep.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Mep.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Mep.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/Mep.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtReply.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtReply.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtReply.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtReply.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtTransactionEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtTransactionEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtTransactionEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLtTransactionEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTsCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTsCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTsCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTsCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/SenderIdTlv.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/SenderIdTlv.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/SenderIdTlv.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/SenderIdTlv.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaId2Octet.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaId2Octet.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaId2Octet.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaId2Octet.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdCharStr.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdCharStr.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdCharStr.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdCharStr.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdIccY1731.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdIccY1731.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdIccY1731.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdIccY1731.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdPrimaryVid.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdPrimaryVid.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdPrimaryVid.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdPrimaryVid.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdRfc2685VpnId.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdRfc2685VpnId.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdRfc2685VpnId.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdRfc2685VpnId.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShort.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShort.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShort.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShort.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdId.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdId.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdId.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdId.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdCharStr.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdCharStr.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdCharStr.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdCharStr.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdDomainName.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdDomainName.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdDomainName.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdDomainName.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdMacUint.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdMacUint.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdMacUint.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdMacUint.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdNone.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdNone.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdNone.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdNone.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepId.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepId.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepId.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepId.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepKeyId.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepKeyId.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepKeyId.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepKeyId.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/package-info.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/package-info.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmConfigException.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmConfigException.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmConfigException.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmConfigException.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMdService.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMdService.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMdService.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMdService.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepEvent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepEvent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepEvent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepEvent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepListener.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepListener.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepListener.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepListener.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepProgrammable.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepProgrammable.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepProgrammable.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepProgrammable.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepService.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepService.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepService.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepService.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepServiceBase.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepServiceBase.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepServiceBase.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/CfmMepServiceBase.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdEvent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdEvent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdEvent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdEvent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdListener.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdListener.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdListener.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdListener.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStore.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStore.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStore.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStore.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStoreDelegate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStoreDelegate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStoreDelegate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MdStoreDelegate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStore.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStore.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStore.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStore.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStoreDelegate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStoreDelegate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStoreDelegate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/MepStoreDelegate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/service/package-info.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/DefaultMeasurementCreateBase.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/DefaultMeasurementCreateBase.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/DefaultMeasurementCreateBase.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/DefaultMeasurementCreateBase.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MeasurementCreateBase.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MeasurementCreateBase.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MeasurementCreateBase.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MeasurementCreateBase.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPct.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPct.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPct.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPct.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamConfigException.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamConfigException.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamConfigException.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamConfigException.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamDmProgrammable.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamDmProgrammable.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamDmProgrammable.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamDmProgrammable.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamId.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamId.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamId.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamId.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamService.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamService.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamService.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamService.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamTime.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamTime.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamTime.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/SoamTime.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StartTime.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StartTime.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StartTime.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StartTime.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StopTime.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StopTime.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StopTime.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/StopTime.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementThreshold.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementThreshold.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementThreshold.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DefaultDelayMeasurementThreshold.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThreshold.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThreshold.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThreshold.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThreshold.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/delay/package-info.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLaStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmThreshold.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmThreshold.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmThreshold.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/DefaultLmThreshold.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreate.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreate.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreate.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreate.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntry.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntry.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntry.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntry.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStat.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStat.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStat.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStat.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrent.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrent.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrent.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrent.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistory.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistory.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistory.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistory.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThreshold.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThreshold.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThreshold.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThreshold.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/loss/package-info.java
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/package-info.java b/apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/package-info.java
similarity index 100%
rename from incubator/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/package-info.java
rename to apps/cfm/api/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/package-info.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/ComponentTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/ComponentTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/ComponentTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/ComponentTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociationTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociationTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociationTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceAssociationTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomainTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomainTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomainTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MaintenanceDomainTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreateTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreateTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreateTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbCreateTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepLbEntryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/MepTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/RemoteMepEntryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShortTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShortTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShortTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MaIdShortTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MdIdTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepIdTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepIdTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepIdTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/identifier/MepIdTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPctTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPctTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPctTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/MilliPctTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/StartTimeTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/StartTimeTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/StartTimeTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/StartTimeTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreateTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreateTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreateTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementCreateTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementEntryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrentAndHistoryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrentAndHistoryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrentAndHistoryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementStatCurrentAndHistoryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThresholdOptionTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThresholdOptionTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThresholdOptionTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/delay/DelayMeasurementThresholdOptionTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrentTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrentTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrentTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatCurrentTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistoryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistoryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistoryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossAvailabilityStatHistoryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreateTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreateTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreateTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementCreateTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementEntryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrentTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrentTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrentTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatCurrentTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistoryTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistoryTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistoryTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementStatHistoryTest.java
diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThresholdOptionTest.java b/apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThresholdOptionTest.java
similarity index 100%
rename from incubator/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThresholdOptionTest.java
rename to apps/cfm/api/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/loss/LossMeasurementThresholdOptionTest.java
diff --git a/apps/cfm/app/BUCK b/apps/cfm/app/BUCK
new file mode 100644
index 0000000..93d3d70
--- /dev/null
+++ b/apps/cfm/app/BUCK
@@ -0,0 +1,17 @@
+COMPILE_DEPS = [
+    '//lib:CORE_DEPS',
+    '//lib:KRYO',
+    '//core/store/serializers:onos-core-serializers',
+    '//apps/cfm/api:onos-apps-cfm-api',
+]
+
+TEST_DEPS = [
+    '//lib:TEST_ADAPTERS',
+    '//utils/osgi:onlab-osgi-tests',
+]
+
+osgi_jar_with_tests (
+    deps = COMPILE_DEPS,
+    test_deps = TEST_DEPS,
+)
+
diff --git a/apps/cfm/app/pom.xml b/apps/cfm/app/pom.xml
new file mode 100644
index 0000000..235182e
--- /dev/null
+++ b/apps/cfm/app/pom.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ~ Copyright 2017 Open Networking Laboratory ~ ~ Licensed under the Apache
+    License, Version 2.0 (the "License"); ~ you may not use this file except
+    in compliance with the License. ~ You may obtain a copy of the License at
+    ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable
+    law or agreed to in writing, software ~ distributed under the License is
+    distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. ~ See the License for the specific language
+    governing permissions and ~ limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onosproject</groupId>
+        <artifactId>onos-apps-cfm</artifactId>
+        <version>1.13.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>onos-apps-cfm-app</artifactId>
+    <packaging>bundle</packaging>
+    <version>1.13.0-SNAPSHOT</version>
+
+    <description>ONOS OSGi bundle archetype</description>
+    <url>http://onosproject.org</url>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-apps-cfm-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-api</artifactId>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-core-common</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-core-common</artifactId>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onlab-osgi</artifactId>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-incubator-store</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-core-serializers</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>
+
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManager.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManager.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManager.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManager.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManager.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManager.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManager.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManager.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMdStore.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMdStore.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMdStore.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMdStore.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMepStore.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMepStore.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMepStore.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/DistributedMepStore.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/package-info.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/package-info.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/package-info.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/package-info.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManager.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManager.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManager.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManager.java
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/package-info.java b/apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/package-info.java
similarity index 100%
rename from incubator/net/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/package-info.java
rename to apps/cfm/app/src/main/java/org/onosproject/incubator/net/l2monitoring/soam/impl/package-info.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManagerTest.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManagerTest.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManagerTest.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMdManagerTest.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManagerTest.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManagerTest.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManagerTest.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/CfmMepManagerTest.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestCfmMepProgrammable.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestCfmMepProgrammable.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestCfmMepProgrammable.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestCfmMepProgrammable.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestDeviceDiscoveryBehavior.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestDeviceDiscoveryBehavior.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestDeviceDiscoveryBehavior.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/cfm/impl/TestDeviceDiscoveryBehavior.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManagerTest.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManagerTest.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManagerTest.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/SoamManagerTest.java
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/TestSoamDmProgrammable.java b/apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/TestSoamDmProgrammable.java
similarity index 100%
rename from incubator/net/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/TestSoamDmProgrammable.java
rename to apps/cfm/app/src/test/java/org/onosproject/incubator/net/l2monitoring/soam/impl/TestSoamDmProgrammable.java
diff --git a/apps/cfm/nbi/BUCK b/apps/cfm/nbi/BUCK
index 9acd4a0..fd493f4 100644
--- a/apps/cfm/nbi/BUCK
+++ b/apps/cfm/nbi/BUCK
@@ -5,7 +5,7 @@
     '//lib:JACKSON',
     '//cli:onos-cli',
     '//lib:org.apache.karaf.shell.console',
-    '//incubator/api:onos-incubator-api'
+    '//apps/cfm/api:onos-apps-cfm-api',
 ]
 
 TEST_DEPS = [
diff --git a/apps/cfm/nbi/pom.xml b/apps/cfm/nbi/pom.xml
index 9036ba1..fa99b78 100644
--- a/apps/cfm/nbi/pom.xml
+++ b/apps/cfm/nbi/pom.xml
@@ -13,11 +13,11 @@
 
     <parent>
         <groupId>org.onosproject</groupId>
-        <artifactId>onos-apps</artifactId>
+        <artifactId>onos-apps-cfm</artifactId>
         <version>1.13.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>onos-apps-cfm</artifactId>
+    <artifactId>onos-apps-cfm-nbi</artifactId>
     <packaging>bundle</packaging>
     <version>1.13.0-SNAPSHOT</version>
 
@@ -47,7 +47,8 @@
 
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-incubator-api</artifactId>
+            <artifactId>onos-apps-cfm-api</artifactId>
+            <version>${project.version}</version>
         </dependency>
 
         <dependency>
@@ -90,7 +91,14 @@
             <artifactId>jersey-test-framework-provider-jetty</artifactId>
             <scope>test</scope>
         </dependency>
-
+        <dependency>
+            <groupId>org.glassfish.jersey.core</groupId>
+            <artifactId>jersey-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.inject</groupId>
+            <artifactId>jersey-hk2</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.onosproject</groupId>
             <artifactId>onos-rest</artifactId>
diff --git a/apps/cfm/pom.xml b/apps/cfm/pom.xml
index 2e2437f..d31b0a1 100644
--- a/apps/cfm/pom.xml
+++ b/apps/cfm/pom.xml
@@ -18,26 +18,14 @@
     </parent>
 
     <artifactId>onos-apps-cfm</artifactId>
-    <packaging>bundle</packaging>
+    <packaging>pom</packaging>
     <version>1.13.0-SNAPSHOT</version>
 
-    <description>ONOS OSGi bundle archetype</description>
-    <url>http://onosproject.org</url>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <web.context>/onos/cfm</web.context>
-        <api.description>Layer 2 Monitoring CFM REST API</api.description>
-        <api.version>1.0.0</api.version>
-        <api.package>org.onosproject.cfm</api.package>
-        <api.title>Layer 2 Monitoring CFM REST API</api.title>
-        <onos.app.name>org.onosproject.cfm</onos.app.name>
-        <onos.app.title>Layer 2 Monitoring CFM App</onos.app.title>
-        <onos.app.origin>Microsemi Inc</onos.app.origin>
-        <onos.app.category>default</onos.app.category>
-        <onos.app.url>http://onosproject.org</onos.app.url>
-        <onos.app.readme>Layer 2 Monitoring Connectivity Fault Management App</onos.app.readme>
-    </properties>
+    <modules>
+        <module>api</module>
+        <module>app</module>
+        <module>nbi</module>
+    </modules>
 
     <dependencies>
         <dependency>
@@ -47,27 +35,6 @@
 
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-incubator-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-core-common</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-cli</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
             <artifactId>onlab-junit</artifactId>
             <scope>test</scope>
         </dependency>
@@ -79,26 +46,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.glassfish.jersey.test-framework</groupId>
-            <artifactId>jersey-test-framework-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-            <artifactId>jersey-test-framework-provider-jetty</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.onosproject</groupId>
-            <artifactId>onos-rest</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <scope>test</scope>
-        </dependency>
-
     </dependencies>
-
 </project>
+
diff --git a/drivers/microsemi/BUCK b/drivers/microsemi/BUCK
index 210d76cc..271b787 100644
--- a/drivers/microsemi/BUCK
+++ b/drivers/microsemi/BUCK
@@ -7,7 +7,7 @@
     '//models/common:onos-models-common',
     '//models/microsemi:onos-models-microsemi',
     '//lib:org.apache.karaf.shell.console',
-    '//incubator/api:onos-incubator-api',
+    '//apps/cfm/api:onos-apps-cfm-api',
 ] + YANG_TOOLS
 
 TEST_DEPS = [
@@ -15,8 +15,8 @@
     '//core/api:onos-api-tests',
     '//drivers/netconf:onos-drivers-netconf-tests',
     '//utils/osgi:onlab-osgi-tests',
-    '//incubator/net:onos-incubator-net',
-    '//incubator/net:onos-incubator-net-tests'
+    '//apps/cfm/app:onos-apps-cfm-app',
+    '//apps/cfm/app:onos-apps-cfm-app-tests',
 ]
 
 APPS = [
@@ -27,7 +27,8 @@
     'org.onosproject.netconfsb',
     'org.onosproject.drivers.netconf',
     'org.onosproject.models.common',
-    'org.onosproject.models.microsemi'
+    'org.onosproject.models.microsemi',
+    'org.onosproject.cfm',
 ]
 
 osgi_jar_with_tests (
diff --git a/drivers/microsemi/pom.xml b/drivers/microsemi/pom.xml
index 4746d50..86af858 100644
--- a/drivers/microsemi/pom.xml
+++ b/drivers/microsemi/pom.xml
@@ -35,7 +35,8 @@
         <onos.app.requires>
           org.onosproject.yang,
           org.onosproject.netconf,
-          org.onosproject.models.microsemi
+          org.onosproject.models.microsemi,
+          org.onosproject.cfm
         </onos.app.requires>
         <onos.app.category>Drivers</onos.app.category>
         <onos.app.title>Microsemi Drivers</onos.app.title>
@@ -50,7 +51,8 @@
 
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-incubator-api</artifactId>
+            <artifactId>onos-apps-cfm-api</artifactId>
+            <version>${project.version}</version>
         </dependency>
 
         <dependency>
@@ -133,14 +135,14 @@
 
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-incubator-net</artifactId>
+            <artifactId>onos-apps-cfm-app</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>org.onosproject</groupId>
-            <artifactId>onos-incubator-net</artifactId>
+            <artifactId>onos-apps-cfm-app</artifactId>
             <version>${project.version}</version>
             <classifier>tests</classifier>
             <scope>test</scope>