One reason potentially speaking against RUNTIME is that any attributes of the annotation would be retained as well, e.g. Strings with a description. So it'd consume a tiny bit of memory which is not needed by the user application.
Btw. there is a related JEP (http://openjdk.java.net/jeps/277) which aims at generalising the existing @Deprecated annotation for purposes like this. It suggests to add attributes to @Deprecated for expressing the deprecation reason and an enum with possible causes. One being EXPERIMENTAL: @Deprecated(EXPERIMENTAL) void myNewApi() { ... } No idea though whether/when it will be part of Java, it's not listed in the Java 9 JEPs at http://openjdk.java.net/projects/jdk9/. Interestingly, @Deprecated has RUNTIME retention which may be the reason that they don't propose to add a String attribute such as description() as part of that JEP. 2016-01-29 19:19 GMT+01:00 Steve Ebersole <st...@hibernate.org>: > I don't have anything specific in mind. Just more of a general thought > process, since its the first annotation of this type I am adding. > > > On Fri, Jan 29, 2016 at 12:11 PM Sanne Grinovero <sa...@hibernate.org> > wrote: >> >> I would think that such a tool would work at compile time rather than >> reflectively at runtime, but one can't be sure of course so it depends >> on what you have in mind. >> >> I'd also say make @Incubating with CLASS retention, it's more than >> what people had before.. you can always evolve it later if someone >> come with a brilliant use case which requires more. >> >> >> On 29 January 2016 at 18:06, Steve Ebersole <st...@hibernate.org> wrote: >> > I personally do not in terms of usage from ORM, nor in usage by ORM >> > users >> > either. I do wonder about tooling though. Like would it be useful for a >> > tool to see an implementation of an @Incubating contract being used and >> > warn the user? >> > >> > On Fri, Jan 29, 2016, 12:02 PM Gunnar Morling <gun...@hibernate.org> >> > wrote: >> > >> >> Do you see any use case for accessing it reflectively at runtime? >> >> >> >> FWIW, OGM's @Experimental has CLASS retention, which I think is >> >> "enough retention" for its purpose. >> >> >> >> 2016-01-29 18:50 GMT+01:00 Steve Ebersole <st...@hibernate.org>: >> >> > Per HHH-10487[1], I want to add an @Incubating annotation to mark >> >> > APIs >> >> that >> >> > are still incubating. Specifically, what do y'all think of >> >> > `java.lang.annotation.RetentionPolicy#CLASS` versus >> >> > `java.lang.annotation.RetentionPolicy#RUNTIME`? >> >> > >> >> > [1] https://hibernate.atlassian.net/browse/HHH-10487 >> >> > _______________________________________________ >> >> > hibernate-dev mailing list >> >> > hibernate-dev@lists.jboss.org >> >> > https://lists.jboss.org/mailman/listinfo/hibernate-dev >> >> >> > _______________________________________________ >> > hibernate-dev mailing list >> > hibernate-dev@lists.jboss.org >> > https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev