Intent manager cleanup

Change-Id: I5a83a69cbaa8f498e5c0ed21588dedf15790d877
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 c018918..2ebc518 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
@@ -89,7 +89,6 @@
     private static final EnumSet<IntentState> RECOMPILE
             = EnumSet.of(INSTALL_REQ, FAILED, WITHDRAW_REQ);
 
-
     // Collections for compiler, installer, and listener are ONOS instance local
     private final ConcurrentMap<Class<? extends Intent>,
             IntentCompiler<? extends Intent>> compilers = new ConcurrentHashMap<>();
@@ -151,7 +150,6 @@
     public void submit(Intent intent) {
         checkNotNull(intent, INTENT_NULL);
         IntentData data = new IntentData(intent, IntentState.INSTALL_REQ, null);
-        //FIXME timestamp?
         store.addPending(data);
     }
 
@@ -159,7 +157,6 @@
     public void withdraw(Intent intent) {
         checkNotNull(intent, INTENT_NULL);
         IntentData data = new IntentData(intent, IntentState.WITHDRAW_REQ, null);
-        //FIXME timestamp?
         store.addPending(data);
     }
 
@@ -290,12 +287,11 @@
         List<List<FlowRuleBatchOperation>> plans = new ArrayList<>(installables.size());
         for (Intent installable : installables) {
             registerSubclassInstallerIfNeeded(installable);
-            //FIXME need to migrate installers to FlowRuleOperations
-            // FIXME need to aggregate the FlowRuleOperations across installables
+            //TODO consider migrating installers to FlowRuleOperations
             plans.add(getInstaller(installable).install(installable));
         }
 
-        return merge(plans).build(new FlowRuleOperationsContext() { // FIXME move this out
+        return merge(plans).build(new FlowRuleOperationsContext() { // TODO move this out
             @Override
             public void onSuccess(FlowRuleOperations ops) {
                 log.info("Completed installing: {}", pending.key());
@@ -307,7 +303,7 @@
             public void onError(FlowRuleOperations ops) {
                 log.warn("Failed installation: {} {} on {}", pending.key(),
                          pending.intent(), ops);
-                //FIXME store.write(pending.setState(BROKEN));
+                //TODO store.write(pending.setState(BROKEN));
                 pending.setState(FAILED);
                 store.write(pending);
             }
@@ -346,7 +342,7 @@
     }
 
 
-    // FIXME... needs tests... or maybe it's just perfect
+    // TODO needs tests... or maybe it's just perfect
     private FlowRuleOperations.Builder merge(List<List<FlowRuleBatchOperation>> plans) {
         FlowRuleOperations.Builder builder = FlowRuleOperations.builder();
         // Build a batch one stage at a time
@@ -622,166 +618,4 @@
             // TODO ensure that only one batch is in flight at a time
         }
     }
-
-//    /////////**************************///////////////////
-//    FIXME Need to build and monitor contexts from FlowRuleService
-//
-//    // TODO: better naming
-//    private class IntentBatchApplyFirst extends IntentBatchPreprocess {
-//
-//        protected final List<CompletedIntentUpdate> intentUpdates;
-//        protected final int installAttempt;
-//        protected Future<CompletedBatchOperation> future;
-//
-//        IntentBatchApplyFirst(Collection<IntentData> operations, List<CompletedIntentUpdate> intentUpdates,
-//                              long endTime, int installAttempt, Future<CompletedBatchOperation> future) {
-//            super(operations, endTime);
-//            this.intentUpdates = ImmutableList.copyOf(intentUpdates);
-//            this.future = future;
-//            this.installAttempt = installAttempt;
-//        }
-//
-//        @Override
-//        public void run() {
-//            Future<CompletedBatchOperation> future = applyNextBatch(intentUpdates);
-//            new IntentBatchProcessFutures(data, intentUpdates, endTime, installAttempt, future).run();
-//        }
-//
-//        /**
-//         * Builds and applies the next batch, and returns the future.
-//         *
-//         * @return Future for next batch
-//         */
-//        protected Future<CompletedBatchOperation> applyNextBatch(List<CompletedIntentUpdate> updates) {
-//            //TODO test this. (also, maybe save this batch)
-//
-//            FlowRuleBatchOperation batch = createFlowRuleBatchOperation(updates);
-//            if (batch.size() > 0) {
-//                //FIXME apply batch might throw an exception
-//                return flowRuleService.applyBatch(batch);
-//            } else {
-//                return null;
-//            }
-//        }
-//
-//        private FlowRuleBatchOperation createFlowRuleBatchOperation(List<CompletedIntentUpdate> intentUpdates) {
-//            FlowRuleBatchOperation batch = new FlowRuleBatchOperation(Collections.emptyList(), null, 0);
-//            for (CompletedIntentUpdate update : intentUpdates) {
-//                FlowRuleBatchOperation currentBatch = update.currentBatch();
-//                if (currentBatch != null) {
-//                    batch.addAll(currentBatch);
-//                }
-//            }
-//            return batch;
-//        }
-//
-//        protected void abandonShip() {
-//            // the batch has failed
-//            // TODO: maybe we should do more?
-//            log.error("Walk the plank, matey...");
-//            future = null;
-//            //FIXME
-//            //batchService.removeIntentOperations(data);
-//        }
-//    }
-//
-//    // TODO: better naming
-//    private class IntentBatchProcessFutures extends IntentBatchApplyFirst {
-//
-//        IntentBatchProcessFutures(Collection<IntentData> operations, List<CompletedIntentUpdate> intentUpdates,
-//                                  long endTime, int installAttempt, Future<CompletedBatchOperation> future) {
-//            super(operations, intentUpdates, endTime, installAttempt, future);
-//        }
-//
-//        @Override
-//        public void run() {
-//            try {
-//                Future<CompletedBatchOperation> future = processFutures();
-//                if (future == null) {
-//                    // there are no outstanding batches; we are done
-//                    //FIXME
-//                    return; //?
-//                    //batchService.removeIntentOperations(data);
-//                } else if (System.currentTimeMillis() > endTime) {
-//                    // - cancel current FlowRuleBatch and resubmit again
-//                    retry();
-//                } else {
-//                    // we are not done yet, yield the thread by resubmitting ourselves
-//                    batchExecutor.submit(new IntentBatchProcessFutures(data, intentUpdates, endTime,
-//                            installAttempt, future));
-//                }
-//            } catch (Exception e) {
-//                log.error("Error submitting batches:", e);
-//                // FIXME incomplete Intents should be cleaned up
-//                //       (transition to FAILED, etc.)
-//                abandonShip();
-//            }
-//        }
-//
-//        /**
-//         * Iterate through the pending futures, and remove them when they have completed.
-//         */
-//        private Future<CompletedBatchOperation> processFutures() {
-//            try {
-//                CompletedBatchOperation completed = future.get(100, TimeUnit.NANOSECONDS);
-//                updateBatches(completed);
-//                return applyNextBatch(intentUpdates);
-//            } catch (TimeoutException | InterruptedException te) {
-//                log.trace("Installation of intents are still pending: {}", data);
-//                return future;
-//            } catch (ExecutionException e) {
-//                log.warn("Execution of batch failed: {}", data, e);
-//                abandonShip();
-//                return future;
-//            }
-//        }
-//
-//        private void updateBatches(CompletedBatchOperation completed) {
-//            if (completed.isSuccess()) {
-//                for (CompletedIntentUpdate update : intentUpdates) {
-//                    update.batchSuccess();
-//                }
-//            } else {
-//                // entire batch has been reverted...
-//                log.debug("Failed items: {}", completed.failedItems());
-//                log.debug("Failed ids: {}",  completed.failedIds());
-//
-//                for (Long id : completed.failedIds()) {
-//                    IntentId targetId = IntentId.valueOf(id);
-//                    for (CompletedIntentUpdate update : intentUpdates) {
-//                        for (Intent intent : update.allInstallables()) {
-//                            if (intent.id().equals(targetId)) {
-//                                update.batchFailed();
-//                                break;
-//                            }
-//                        }
-//                    }
-//                    // don't increment the non-failed items, as they have been reverted.
-//                }
-//            }
-//        }
-//
-//        private void retry() {
-//            log.debug("Execution timed out, retrying.");
-//            if (future.cancel(true)) { // cancel success; batch is reverted
-//                // reset the timer
-//                long timeLimit = calculateTimeoutLimit();
-//                int attempts = installAttempt + 1;
-//                if (attempts == MAX_ATTEMPTS) {
-//                    log.warn("Install request timed out: {}", data);
-//                    for (CompletedIntentUpdate update : intentUpdates) {
-//                        update.batchFailed();
-//                    }
-//                } else if (attempts > MAX_ATTEMPTS) {
-//                    abandonShip();
-//                    return;
-//                }
-//                Future<CompletedBatchOperation> future = applyNextBatch(intentUpdates);
-//                batchExecutor.submit(new IntentBatchProcessFutures(data, intentUpdates, timeLimit, attempts, future));
-//            } else {
-//                log.error("Cancelling FlowRuleBatch failed.");
-//                abandonShip();
-//            }
-//        }
-//    }
 }