Package org.apache.pinot.spi.annotations
Class InterfaceStability
- java.lang.Object
-
- org.apache.pinot.spi.annotations.InterfaceStability
-
@Public @Evolving public class InterfaceStability extends Object
Annotation to inform users of how much to rely on a particular package, class or method not changing over time. Currently the stability can beInterfaceStability.Stable,InterfaceStability.EvolvingorInterfaceStability.Unstable.
- All classes that are annotated with
InterfaceAudience.Publicmust have InterfaceStability annotation. - Classes that are
InterfaceAudience.Privateare to be considered unstable unless a different InterfaceStability annotation states otherwise. - Pinot contributors should NOT make incompatible changes to classes marked as stable.
Some things to watch out for classes marked as stable:
- Method(s) cannot be removed from classes/interfaces marked as stable during minor version releases. Deprecate the method(s) first and remove the method in a major release.
- Similar to earlier point, method signature cannot change.
- New methods cannot be added to interfaces without providing default implementation for minor version releases.
- All classes that are annotated with
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceInterfaceStability.EvolvingEvolving, but can break compatibility at minor release (i.e.static interfaceInterfaceStability.StableCan evolve while retaining compatibility for minor release boundaries.; can break compatibility only at major release (ie.static interfaceInterfaceStability.UnstableNo guarantee is provided as to reliability or stability across any level of release granularity.
-
Constructor Summary
Constructors Constructor Description InterfaceStability()
-