[ONOS-6195] Updating L3VPN create.

Change-Id: Ic23854388970d55c1c591c59edfe5e3e3ba78d1f
diff --git a/apps/l3vpn/netl3vpn/pom.xml b/apps/l3vpn/netl3vpn/pom.xml
index e1dbc1f..75a64b0 100644
--- a/apps/l3vpn/netl3vpn/pom.xml
+++ b/apps/l3vpn/netl3vpn/pom.xml
@@ -32,7 +32,7 @@
     <description>IETF L3VPN Service Model</description>
 
     <properties>
-        <yang-tool-version>1.12.0-b6</yang-tool-version>
+        <yang-tool-version>1.12.0-b7</yang-tool-version>
     </properties>
 
     <dependencies>
@@ -56,5 +56,10 @@
             <artifactId>onos-app-l3vpn-yangmodel</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.onosproject</groupId>
+            <artifactId>onos-app-config</artifactId>
+            <version>1.10.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 </project>
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
index b5f8681..f04d3b7 100644
--- a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
+++ b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/NetL3VpnStore.java
@@ -71,6 +71,14 @@
     void addVpnInsIfAbsent(String name, VpnInstance instance);
 
     /**
+     * Adds the VPN name and the VPN instance to the map.
+     *
+     * @param name     VPN name
+     * @param instance VPN instance
+     */
+    void addVpnIns(String name, VpnInstance instance);
+
+    /**
      * Adds the access info and the interface info to the map in store.
      *
      * @param accessInfo access info
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
index 880ed51..f45efd2 100644
--- a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
+++ b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/VpnInstance.java
@@ -18,7 +18,7 @@
 
 import org.onosproject.net.DeviceId;
 
-import java.util.LinkedHashMap;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -118,7 +118,7 @@
      */
     public void addDevInfo(DeviceId id, DeviceInfo info) {
         if (devInfo == null) {
-            devInfo = new LinkedHashMap<>();
+            devInfo = new HashMap<>();
         }
         devInfo.put(id, info);
     }
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
index baf3bc4..6debaf4 100644
--- a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
+++ b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/DistributedNetL3VpnStore.java
@@ -29,12 +29,12 @@
 import org.onosproject.l3vpn.netl3vpn.FullMeshVpnConfig;
 import org.onosproject.l3vpn.netl3vpn.HubSpokeVpnConfig;
 import org.onosproject.l3vpn.netl3vpn.InterfaceInfo;
+import org.onosproject.l3vpn.netl3vpn.NetL3VpnStore;
 import org.onosproject.l3vpn.netl3vpn.ProtocolInfo;
 import org.onosproject.l3vpn.netl3vpn.RouteProtocol;
 import org.onosproject.l3vpn.netl3vpn.VpnConfig;
 import org.onosproject.l3vpn.netl3vpn.VpnInstance;
 import org.onosproject.l3vpn.netl3vpn.VpnType;
-import org.onosproject.l3vpn.netl3vpn.NetL3VpnStore;
 import org.onosproject.net.DeviceId;
 import org.onosproject.store.serializers.KryoNamespaces;
 import org.onosproject.store.service.ConsistentMap;
@@ -77,6 +77,7 @@
                            .register(LeafListKey.class)
                            .register(ListKey.class)
                            .register(AccessInfo.class)
+                           .register(InterfaceInfo.class)
                            .register(BgpInfo.class)
                            .register(RouteProtocol.class)
                            .register(ProtocolInfo.class)
@@ -187,6 +188,13 @@
     }
 
     @Override
+    public void addVpnIns(String name, VpnInstance instance) {
+        checkNotNull(name, VPN_NAME_NULL);
+        checkNotNull(instance, VPN_INS_NULL);
+        vpnInsMap.put(name, instance);
+    }
+
+    @Override
     public void addInterfaceInfo(AccessInfo accessInfo, InterfaceInfo intInfo) {
         checkNotNull(accessInfo, ACCESS_INFO_NULL);
         checkNotNull(intInfo, INT_INFO_NULL);
diff --git a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3vpnManager.java b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3vpnManager.java
index e13057e..e911000 100644
--- a/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3vpnManager.java
+++ b/apps/l3vpn/netl3vpn/src/main/java/org/onosproject/l3vpn/netl3vpn/impl/NetL3vpnManager.java
@@ -180,7 +180,8 @@
     private NodeId localNodeId;
     private ApplicationId appId;
 
-    private DynamicConfigListener configListener = new InternalConfigListener();
+    private final DynamicConfigListener configListener = new
+            InternalConfigListener();
 
     private final InternalLeadershipListener leadershipEventListener =
             new InternalLeadershipListener();
@@ -625,6 +626,7 @@
                                                             devMod);
         ResourceData resData = modelConverter.createDataNode(driMod);
         addToStore(resData);
+        l3VpnStore.addVpnIns(inst.vpnName(), inst);
         return info;
     }
 
diff --git a/apps/l3vpn/yangmodel/pom.xml b/apps/l3vpn/yangmodel/pom.xml
index fca0ffd..d2715b9 100644
--- a/apps/l3vpn/yangmodel/pom.xml
+++ b/apps/l3vpn/yangmodel/pom.xml
@@ -36,7 +36,7 @@
             <plugin>
                 <groupId>org.onosproject</groupId>
                 <artifactId>onos-yang-compiler-maven-plugin</artifactId>
-                <version>1.12.0-b6</version>
+                <version>1.12.0-b7</version>
                 <executions>
                     <execution>
                         <goals>