Would it really be backwards-incompatible if we added new levels later?
That seems counter-intuitive and contrary to this piece of documentation:

http://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.7

Quoting:

Annotation types behave exactly like any other interface. Adding or
removing an element from an annotation type is analogous to adding or
removing a method. There are important considerations governing other
changes to annotation types, but these have no effect on the linkage of
binaries by the Java Virtual Machine. Rather, such changes affect the
behavior of reflective APIs that manipulate annotations. The documentation
of these APIs specifies their behavior when various changes are made to the
underlying annotation types.

Adding or removing annotations has no effect on the correct linkage of the
binary representations of programs in the Java programming language.

Certainly removing existing levels would be backwards-incompatible.

Chris Nauroth
Hortonworks
http://hortonworks.com/


On Thu, Jan 15, 2015 at 6:14 AM, Allen Wittenauer <a...@altiscale.com> wrote:

>
>         IIRC, it was marked as evolving because it wasn’t clear at the
> time whether we would need to add more stability levels. (One of the key
> inspirations for the stability levels—Sun’s ARC process—had more.)
>
>         So I think it’s important to remember that if this gets changed to
> stable, that effectively means it  new levels can’t really get added...
>
> On Jan 13, 2015, at 2:34 PM, Robert Kanter <rkan...@cloudera.com> wrote:
>
> > +1
> >
> > Though it is kinda funny that the InterfaceStability annotation was
> marked
> > as Evolving :)
> > @InterfaceStability.Evolving
> > public class InterfaceStability {...}
> >
> >
> > On Tue, Jan 13, 2015 at 2:21 PM, Ted Yu <yuzhih...@gmail.com> wrote:
> >
> >> +1
> >>
> >> On Tue, Jan 13, 2015 at 1:47 PM, Abraham Elmahrek <a...@cloudera.com>
> >> wrote:
> >>
> >>> Hey guys,
> >>>
> >>> I've noticed the InterfaceStability (
> >>>
> >>>
> >>
> https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java
> >>> )
> >>> and InterfaceAudience (
> >>>
> >>>
> >>
> https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceAudience.java
> >>> )
> >>> classes are marked as "Evolving". These really haven't changed much in
> >> the
> >>> last few years, so I was wondering if it is reasonable to mark them as
> >>> stable?
> >>>
> >>> -Abe
> >>>
> >>
>
>

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Reply via email to