diff --git a/app.xml b/app.xml
index 162ec50..7da9bee 100644
--- a/app.xml
+++ b/app.xml
@@ -14,9 +14,9 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<app name="org.opencord.igmpproxy" origin="Nokia" version="1.0.0-SNAPSHOT"
-        featuresRepo="mvn:org.opencord/onos-app-igmpproxy/1.0.0-SNAPSHOT/xml/features"
+<app name="org.opencord.igmpproxy" origin="Nokia" version="1.1.0-SNAPSHOT"
+        featuresRepo="mvn:org.opencord/onos-app-igmpproxy/1.1.0-SNAPSHOT/xml/features"
         features="onos-app-igmpproxy" apps="org.opencord.mcast">
     <description>IGMP PROXY APP</description>
-    <artifact>mvn:org.opencord/onos-app-igmpproxy/1.0.0-SNAPSHOT</artifact>
+    <artifact>mvn:org.opencord/onos-app-igmpproxy/1.1.0-SNAPSHOT</artifact>
 </app>
diff --git a/pom.xml b/pom.xml
index 9139b56..ec673e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,27 +22,29 @@
     <parent>
         <groupId>org.onosproject</groupId>
         <artifactId>onos-dependencies</artifactId>
-        <version>1.8.0</version>
+        <version>1.10.3</version>
         <relativePath></relativePath>
     </parent>
 
     <groupId>org.opencord</groupId>
     <artifactId>onos-app-igmpproxy</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.1.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
 
     <description>IGMP PROXY APP</description>
 
     <properties>
         <onos.app.name>org.opencord.igmpproxy</onos.app.name>
-        <onos.version>1.8.0</onos.version>
+        <onos.version>1.10.3</onos.version>
         <onos.app.category>Traffic Steering</onos.app.category>
         <onos.app.title>IGMP proxy App</onos.app.title>
         <onos.app.url>http://opencord.org</onos.app.url>
         <onos.app.readme>IGMP implementation.</onos.app.readme>
         <onos.app.requires>org.opencord.config</onos.app.requires>
 	<onos.app.requires>org.opencord.mcast</onos.app.requires>
-	<cord.config.version>1.2.0-SNAPSHOT</cord.config.version>
+        <cord.config.version>1.3.0-SNAPSHOT</cord.config.version>
+        <!-- TODO onos-build-conf.version can be dropped when onos.version > 1.10.3 -->
+        <onos-build-conf.version>1.10.3-onf</onos-build-conf.version>
     </properties>
 
 
diff --git a/src/main/java/org/opencord/igmpproxy/IgmpManager.java b/src/main/java/org/opencord/igmpproxy/IgmpManager.java
index 1b95105..1b4285b 100644
--- a/src/main/java/org/opencord/igmpproxy/IgmpManager.java
+++ b/src/main/java/org/opencord/igmpproxy/IgmpManager.java
@@ -196,7 +196,7 @@
                 }
         );
 
-        oltData.keySet().forEach(d->provisionDefaultFlows(d));
+        oltData.keySet().forEach(d -> provisionDefaultFlows(d));
         if (connectPointMode) {
             provisionConnectPointFlows();
         } else {
@@ -781,7 +781,7 @@
             return;
         }
 
-        oltData.keySet().forEach(deviceId ->provisionUplinkFlows(deviceId));
+        oltData.keySet().forEach(deviceId -> provisionUplinkFlows(deviceId));
     }
     private void unprovisionUplinkFlows() {
         oltData.keySet().forEach(deviceId ->
