This patch solves the following problem:

- The callback mechanism of the MeterContext is not working properly.

Please note that

When a meter is added successfully (it means we get the first meter-stats reply), DistributedMeterStore must complete the related future.
When the related future is completed, MeterManager calls the MeterContexts' onSuccess() method.
onSuccess() method can be used to solve ordering problems between meter-mods and flow-mods.

Change-Id: Ifed8b317331c05089b90041eaf2d4693c938e117
diff --git a/core/store/dist/src/main/java/org/onosproject/store/meter/impl/DistributedMeterStore.java b/core/store/dist/src/main/java/org/onosproject/store/meter/impl/DistributedMeterStore.java
index 1b5c9ca..792c18b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/meter/impl/DistributedMeterStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/meter/impl/DistributedMeterStore.java
@@ -474,6 +474,7 @@
                                         (data.meter().state() == MeterState.PENDING_ADD
                                                 || data.meter().state() == MeterState.ADDED)) {
                                     futures.computeIfPresent(key, (k, v) -> {
+                                        v.complete(MeterStoreResult.success());
                                         notifyDelegate(
                                                 new MeterEvent(MeterEvent.Type.METER_ADDED, data.meter()));
                                         return null;