Added link types of TUNNEL and OPTICAL.
Fixed the optical config json file.
Fixed treatment of links added by ancillary providers.
Added a trap for topology provider errors.
Added CLI to recompute topology.
diff --git a/apps/optical/src/main/resources/demo-3-roadm-2-ps.json b/apps/optical/src/main/resources/demo-3-roadm-2-ps.json
index 6f2c2f5..20b7db2 100644
--- a/apps/optical/src/main/resources/demo-3-roadm-2-ps.json
+++ b/apps/optical/src/main/resources/demo-3-roadm-2-ps.json
@@ -1,5 +1,5 @@
 {
-        "opticalSwitches": [
+    "opticalSwitches": [
         {
             "allowed": true,
             "latitude": 37.6,
@@ -12,7 +12,7 @@
             "type": "Roadm"
         },
 
-	{
+        {
             "allowed": true,
             "latitude": 37.3,
             "longitude": 121.9,
@@ -22,9 +22,9 @@
                 "numRegen": 0
             },
             "type": "Roadm"
-         },
+        },
 
- 	{
+        {
             "allowed": true,
             "latitude": 33.9,
             "longitude": 118.4,
@@ -34,10 +34,10 @@
                 "numRegen": 2
             },
             "type": "Roadm"
-         }
+        }
     ],
 
-        "opticalLinks": [
+    "opticalLinks": [
         {
             "allowed": true,
             "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
@@ -51,10 +51,38 @@
                 "port2": 30
             },
             "type": "wdmLink"
-         },
-       
-       {
-	"allowed": true,
+        },
+        {
+            "allowed": true,
+            "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
+            "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
+            "params": {
+                "distKms": 1000,
+                "nodeName1": "ROADM3",
+                "nodeName2": "ROADM1",
+                "numWaves": 80,
+                "port1": 30,
+                "port2": 10
+            },
+            "type": "wdmLink"
+        },
+
+        {
+            "allowed": true,
+            "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
+            "nodeDpid2": "00:00:ff:ff:ff:ff:ff:03",
+            "params": {
+                "distKms": 2000,
+                "nodeName1": "ROADM2",
+                "nodeName2": "ROADM3",
+                "numWaves": 80,
+                "port1": 20,
+                "port2": 31
+            },
+            "type": "wdmLink"
+        },
+        {
+            "allowed": true,
             "nodeDpid1": "00:00:ff:ff:ff:ff:ff:03",
             "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
             "params": {
@@ -66,10 +94,9 @@
                 "port2": 20
             },
             "type": "wdmLink"
-       },
+        },
 
-   
-      {
+        {
             "allowed": true,
             "nodeDpid1": "00:00:ff:ff:ff:ff:00:01",
             "nodeDpid2": "00:00:ff:ff:ff:ff:ff:01",
@@ -82,8 +109,21 @@
             },
             "type": "pktOptLink"
         },
+        {
+            "allowed": true,
+            "nodeDpid1": "00:00:ff:ff:ff:ff:ff:01",
+            "nodeDpid2": "00:00:ff:ff:ff:ff:00:01",
+            "params": {
+                "nodeName1": "ROADM1",
+                "nodeName2": "ROUTER1",
+                "bandWidth": 100000,
+                "port1": 11,
+                "port2": 10
+            },
+            "type": "pktOptLink"
+        },
 
-       {
+        {
             "allowed": true,
             "nodeDpid1": "00:00:ff:ff:ff:ff:00:02",
             "nodeDpid2": "00:00:ff:ff:ff:ff:ff:02",
@@ -95,7 +135,20 @@
                 "port2": 21
             },
             "type": "pktOptLink"
-        } 
+        },
+        {
+            "allowed": true,
+            "nodeDpid1": "00:00:ff:ff:ff:ff:ff:02",
+            "nodeDpid2": "00:00:ff:ff:ff:ff:00:02",
+            "params": {
+                "nodeName1": "ROADM2",
+                "nodeName2": "ROUTER2",
+                "bandWidth": 100000,
+                "port1": 21,
+                "port2": 10
+            },
+            "type": "pktOptLink"
+        }
 
     ]
 }