Updating IntentCleanup to check for stalled *_REQ and *ING intents.

Change-Id: Ibe06ee99463bb8230acf9751da4fb1012859b0ea
diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
index 4f0ad66..7de2d17 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
@@ -132,10 +132,13 @@
     }
 
     @Override
-    public Iterable<IntentData> getIntentData(boolean localOnly) {
-        if (localOnly) {
+    public Iterable<IntentData> getIntentData(boolean localOnly, long olderThan) {
+        if (localOnly || olderThan > 0) {
+            long now = System.currentTimeMillis();
+            final WallClockTimestamp time = new WallClockTimestamp(now - olderThan);
             return currentMap.values().stream()
-                    .filter(data -> isMaster(data.key()))
+                    .filter(data -> data.version().isOlderThan(time) &&
+                            (!localOnly || isMaster(data.key())))
                     .collect(Collectors.toList());
         }
         return currentMap.values();
@@ -261,6 +264,21 @@
                 .collect(Collectors.toList());
     }
 
+    @Override
+    public Iterable<IntentData> getPendingData() {
+        return pendingMap.values();
+    }
+
+    @Override
+    public Iterable<IntentData> getPendingData(boolean localOnly, long olderThan) {
+        long now = System.currentTimeMillis();
+        final WallClockTimestamp time = new WallClockTimestamp(now - olderThan);
+        return pendingMap.values().stream()
+                .filter(data -> data.version().isOlderThan(time) &&
+                                (!localOnly || isMaster(data.key())))
+                .collect(Collectors.toList());
+    }
+
     private void notifyDelegateIfNotNull(IntentEvent event) {
         if (event != null) {
             notifyDelegate(event);