REST interface for VPLS application

Change-Id: I2cab5bd6ff0ce026d0ef844bba6199fdd7f3e50d
This repository contains the files that provide a REST interface for VPLS
application.I create a new package in org.onosproject.vpls
called rest that contains the java classes VplsWebApplication and
VplsWebResource. The VplsWebResource provides create/update/read/delete
(CURD) functionality, leveraging the methods defined in the Vpls java
interface. I create a new folder called resources that contains
the json definitions and the files for the "web page".
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
index d9bba87..472860f 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
@@ -19,6 +19,8 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.onosproject.codec.CodecService;
+import org.onosproject.codec.JsonCodec;
 import org.onosproject.net.EncapsulationType;
 import org.onosproject.net.host.HostEvent;
 import org.onosproject.vpls.api.VplsData;
@@ -27,6 +29,7 @@
 import org.onosproject.vpls.store.VplsStoreEvent;
 
 import java.util.Collection;
+import java.util.Set;
 
 import static org.junit.Assert.*;
 import static org.onosproject.net.EncapsulationType.*;
@@ -37,6 +40,7 @@
  */
 public class VplsManagerTest extends VplsTest {
     private VplsManager vplsManager;
+    private CodecService codecService = new TestCodecService();
     private TestVplsStore vplsStore = new TestVplsStore();
     private TestHostService hostService = new TestHostService();
     private TestInterfaceService interfaceService = new TestInterfaceService();
@@ -45,6 +49,7 @@
     @Before
     public void setup() {
         vplsManager = new VplsManager();
+        vplsManager.codecService = codecService;
         vplsManager.hostService = hostService;
         vplsManager.vplsStore = vplsStore;
         vplsManager.operationService = vplsOperationService;
@@ -336,4 +341,31 @@
         }
     }
 
+    /**
+     * Test Codec service.
+     */
+    class TestCodecService implements CodecService {
+
+
+        @Override
+        public Set<Class<?>> getCodecs() {
+            return null;
+        }
+
+        @Override
+        public <T> JsonCodec<T> getCodec(Class<T> entityClass) {
+            return null;
+        }
+
+        @Override
+        public <T> void registerCodec(Class<T> entityClass, JsonCodec<T> codec) {
+
+        }
+
+        @Override
+        public void unregisterCodec(Class<?> entityClass) {
+
+        }
+    }
+
 }
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
index 6051f92..9920a22 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
@@ -629,6 +629,7 @@
         NetworkConfigListener listener;
         VplsAppConfig vplsAppConfig;
 
+
         @Override
         public void addListener(NetworkConfigListener listener) {
             this.listener = listener;
diff --git a/apps/vpls/src/test/java/resources/vpls-cfg.json b/apps/vpls/src/test/java/resources/vpls-cfg.json
new file mode 100644
index 0000000..5236124
--- /dev/null
+++ b/apps/vpls/src/test/java/resources/vpls-cfg.json
@@ -0,0 +1,67 @@
+{
+  "ports": {
+    "of:0000000000000001/1": {
+      "interfaces": [
+        {
+          "name": "h1",
+          "vlan": "100"
+        }
+      ]
+    },
+    "of:0000000000000002/1": {
+      "interfaces": [
+        {
+          "name": "h2",
+          "vlan": "200"
+        }
+      ]
+    },
+    "of:0000000000000003/1": {
+      "interfaces": [
+        {
+          "name": "h3",
+          "vlan": "300"
+        }
+      ]
+    },
+    "of:0000000000000004/1": {
+      "interfaces": [
+        {
+          "name": "h4",
+          "vlan": "400"
+        }
+      ]
+    },
+    "of:0000000000000005/1": {
+      "interfaces": [
+        {
+          "name": "h5"
+        }
+      ]
+    },
+    "of:0000000000000006/1": {
+      "interfaces": [
+        {
+          "name": "h6"
+        }
+      ]
+    }
+  },
+  "apps" : {
+    "org.onosproject.vpls" : {
+      "vpls" : {
+        "vplsList" : [
+          {
+            "name" : "VPLS1",
+            "interfaces" : ["h1", "h2", "h5", "h6"]
+          },
+          {
+            "name" : "VPLS2",
+            "interfaces" : ["h3", "h4"],
+            "encapsulation" : "vlan"
+          }
+        ]
+      }
+    }
+  }
+}
\ No newline at end of file