Fixed a bug that optical intent compilers never release resources reserved during compilation.
Removed tempoary code from optical app (ONOS-2129).

Change-Id: Iee0343964f886196922469eaabe4a72c3f404888
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
index fcdb033..c9d6e56 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/IntentManager.java
@@ -44,6 +44,7 @@
 import org.onosproject.net.intent.Key;
 import org.onosproject.net.intent.impl.phase.FinalIntentProcessPhase;
 import org.onosproject.net.intent.impl.phase.IntentProcessPhase;
+import org.onosproject.net.newresource.ResourceService;
 import org.slf4j.Logger;
 
 import java.util.Collection;
@@ -108,6 +109,9 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected FlowRuleService flowRuleService;
 
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    protected ResourceService resourceService;
+
     private ExecutorService batchExecutor;
     private ExecutorService workerExecutor;
 
@@ -238,6 +242,16 @@
         @Override
         public void notify(IntentEvent event) {
             post(event);
+            switch (event.type()) {
+                case WITHDRAWN:
+                    // release resources allocated to withdrawn intent
+                    if (!resourceService.release(event.subject().id())) {
+                        log.error("Failed to release resources allocated to {}", event.subject().id());
+                    }
+                    break;
+                default:
+                    break;
+            }
         }
 
         @Override