Added @Beta annotation to the flow objective API.
Change-Id: I4dd91921db1ff533b0ea1e3244dcdbf08b64a499
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultFilteringObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultFilteringObjective.java
index 94519a9..e5589b4 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultFilteringObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultFilteringObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.criteria.Criteria;
@@ -31,6 +32,7 @@
/**
* Default implementation of a filtering objective.
*/
+@Beta
public final class DefaultFilteringObjective implements FilteringObjective {
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
index 9bbe991..ae47de1 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
@@ -28,6 +29,7 @@
/**
* Default implementation of a forwarding objective.
*/
+@Beta
public final class DefaultForwardingObjective implements ForwardingObjective {
private final TrafficSelector selector;
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
index a034edb..956dbbe 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficTreatment;
@@ -29,6 +30,7 @@
/**
* Default implementation of a next objective.
*/
+@Beta
public final class DefaultNextObjective implements NextObjective {
private final List<TrafficTreatment> treatments;
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java
index d037764..173ddfd 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FilteringObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.criteria.Criterion;
@@ -26,6 +27,7 @@
* be used by a device driver to construct the actual flow rules to
* be installed on the device.
*/
+@Beta
public interface FilteringObjective extends Objective {
enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
index fd6ac55..f276c0d 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
@@ -15,12 +15,14 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.net.DeviceId;
/**
* Service for programming data plane flow rules in manner independent of
* specific device table pipeline configuration.
*/
+@Beta
public interface FlowObjectiveService {
/**
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
index 033558c..ecf5d73 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
@@ -15,12 +15,14 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.net.behaviour.NextGroup;
import org.onosproject.store.Store;
/**
* The flow objective store.
*/
+@Beta
public interface FlowObjectiveStore
extends Store<ObjectiveEvent, FlowObjectiveStoreDelegate> {
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStoreDelegate.java
index 5af7836..2189af1 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStoreDelegate.java
@@ -15,10 +15,12 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.store.StoreDelegate;
/**
* Flow Objective store delegate abstraction.
*/
+@Beta
public interface FlowObjectiveStoreDelegate extends StoreDelegate<ObjectiveEvent> {
}
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
index d825b99..c941aa0 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/ForwardingObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
@@ -23,6 +24,7 @@
* be forwarded through the device. A forwarding objective may
* in multiple rules at the device.
*/
+@Beta
public interface ForwardingObjective extends Objective {
/**
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/NextObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/NextObjective.java
index 229e6b5..2971883 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/NextObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/NextObjective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.flow.TrafficTreatment;
@@ -25,6 +26,7 @@
* into the appropriate group or actions needed to implement
* the function.
*/
+@Beta
public interface NextObjective extends Objective {
/**
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/Objective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/Objective.java
index 0d53a75..090c298 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/Objective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/Objective.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.core.ApplicationId;
import java.util.Optional;
@@ -22,6 +23,7 @@
/**
* Base representation of an flow description.
*/
+@Beta
public interface Objective {
static final boolean DEFAULT_PERMANENT = true;
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveContext.java b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveContext.java
index 00e4ed8..5bb2bdc 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveContext.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveContext.java
@@ -15,12 +15,15 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
+
/**
* The context of a objective that will become the subject of
* the notification.
*
* Implementations of this class must be serializable.
*/
+@Beta
public interface ObjectiveContext {
default void onSuccess(Objective objective) {}
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveError.java b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveError.java
index d23af76..fd159d7 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveError.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveError.java
@@ -15,9 +15,12 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
+
/**
* Represents the set of errors possible when processing an objective.
*/
+@Beta
public enum ObjectiveError {
/**
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveEvent.java b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveEvent.java
index 9f095cf..c6937e3 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/ObjectiveEvent.java
@@ -15,11 +15,13 @@
*/
package org.onosproject.net.flowobjective;
+import com.google.common.annotations.Beta;
import org.onosproject.event.AbstractEvent;
/**
* Describes a objective event.
*/
+@Beta
public class ObjectiveEvent extends AbstractEvent<ObjectiveEvent.Type, Integer> {
/**
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java b/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java
index 65454a7..105f7b5 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/package-info.java
@@ -16,6 +16,7 @@
/**
* Abstractions for objective-based flow programming of data plane without
- * requiring device pipeline structure awareness.
+ * requiring device pipeline structure awareness. This subsystem is
+ * experimental and its interfaces will change in the upcoming release.
*/
package org.onosproject.net.flowobjective;
\ No newline at end of file