tree cf7d2c5678246a27d13d312039349fc6a39325d1
parent 8040b71aca86119d8265d7d7011e1c693cd2b0e2
author Pavlin Radoslavov <pavlin@onlab.us> 1395342297 -0700
committer Gerrit Code Review <gerrit2@onos-services> 1395362021 -0700

Work toward fixing ONOS-1031: Remove or comment-out references to the FlowManager

Removed or commented-out references to the FlowManager, in preparation for
its removal:

 * BgpRoute.java
   Commented-out references to the FlowManager to add/delete flows.
   Those should be replaced by calls to the new Path Intent framework.
   Currently, we don't have the setup to test BgpRoute and the new Path Intent
   framework is not ready yet, hence those references are commented-out.

 * FlowProgrammer.java
   - Disabled the FlowSynchronizer, because it needs to be refactored,
     and probably now is not working as expected.
   - Removed a call to the FlowManager.flowEntryOnSwitchExpired(sw, id)
     and replaced it with a comment that the Forwarding module needs to be
     informed that a flow is expired.
     Currently, the Forwarding module is not functional and needs to be
     refactored, hence we cannot test any code refactoring around this.

 * FlowSynchronizer.java
   Commented-out a call and relevant code around
   FlowDatabaseOperation.extractFlowEntry()
   The FlowSyncronizer itself needs refactoring, and it is not clear what
   the next version is going to look like.

 * Forwarding.java
   Commented-out a call to flowService.addFlow(flowPath)
   This should be replaced by a call to the new Path Intent framework.
   Currently, the Forwarding module is not working, and the new Path Intent
   framework is not ready yet, hence the call is commented-out.

 * ControllerTest.java
   Removed reference to IFlowService.class because that class will be removed

 * FlowSyncronizerTest.java
   Commented out test code that refers to the FlowDatabaseOperation class.
   That class will be removed, and the test needs to be rewritten after
   the all the cleanup is completed.

Change-Id: I034636ba9c882220f71761a61ea9e6e10bc93357
