Does Animal Sniffer check this? It wasn't clear from eyeballing the code if
it paid much attention to annotations apart from its own, but it all
depends on a possible  twisty maze of delegation in as, so I'm uncertain.

On Jun 9, 2017 11:55 AM, "Gary Gregory" <garydgreg...@gmail.com> wrote:

> That would require that the animal sniffer plugin be setup for components
> that do want to go that way. Doable if there is a sig file for the right
> Java version for that component.
>
> Gary
>
> On Jun 9, 2017 8:13 AM, "Simon Spero" <sesunc...@gmail.com> wrote:
>
> > On Thu, Jun 8, 2017 at 12:19 PM, Gary Gregory <garydgreg...@gmail.com>
> > wrote:
> >
> > > > 3. JDK9 adds some extra parameters to the Deprecated annotation (most
> > > notably  forRemoval=true, which is used to indicate that the annotated
> > item
> > >  is really really deprecated.)   It's not needed in this case, but is
> > > worth thinking about  when jdk9 is eventually released (latest schedule
> > > change : from 7/27/2017 to 9/21/2017).
> > >
> > > I do not think we plan on making Java 9 a requirement for any current
> > > project.
> >
> >
> > I just double checked, and it does seem that the jdk-9 dependency is at
> > library compile time.  Compiling a class with an enhanced deprecation
> > annotation, using the jdk-9 compiler, but with source & target 1.8, and
> > then compiling another class that uses the deprecated class works, and
> > gives the expected messages.
> >
> > Using -Xlint:deprecation shows the detailed deprecation warning.  Using
> > plain -Xlint adds some extra warnings about the ignored annotation bits
> > which require -Xlint:-classfile to disable.
> >
> > Compiling the second class with jdk9 issues the new "removal" warning
> (with
> > -Xlint:-removal required to downgrade the warning to a note).
> >
> > None of this is particularly urgent, but if/when jdk9 is released, it
> might
> > be worth considering
> >
> > Simon
> >
> > ses@snarkive$ javac -version
> > *javac 1.8.0_131*
> >
> > ses@snarkive$ javac  -cp build/classes/main
> depup/src/EyeOfTheWeasel.java
> > *Note: depup/src/EyeOfTheWeasel.java uses or overrides a deprecated API.*
> > *Note: Recompile with -Xlint:deprecation for details.*
> >
> > ses@snarkive$ javac -Xlint:deprecation -cp build/classes/main
> > depup/src/EyeOfTheWeasel.java
> > *depup/src/EyeOfTheWeasel.java:7: warning: [deprecation] Weasel in
> unnamed
> > package has been deprecated*
> > *        Weasel.main(new String[] {"UTF-8"});*
> >
> > ses@snarkive$ javac -Xlint -cp build/classes/main
> > depup/src/EyeOfTheWeasel.java
> > *build/classes/main/Weasel.class: warning: Cannot find annotation method
> > 'since()' in type 'Deprecated'*
> > *build/classes/main/Weasel.class: warning: Cannot find annotation method
> > 'forRemoval()' in type 'Deprecated'*
> > *depup/src/EyeOfTheWeasel.java:7: warning: [deprecation] Weasel in
> unnamed
> > package has been deprecated*
> > *        Weasel.main(new String[] {"UTF-8"});*
> > *        ^*
> > *3 warnings*
> >
> > ses@snarkive$ javac -Xlint  -Xlint:-classfile -cp build/classes/main
> > depup/src/EyeOfTheWeasel.java
> > depup/src/EyeOfTheWeasel.java:7: warning: [deprecation] Weasel in
> unnamed
> > package has been deprecated
> >         Weasel.main(new String[] {"UTF-8"});
> >         ^
> > 1 warning
> >
> > ses@snarkive$ java  -cp build/classes/main/:depup/src/:build/classes
> > EyeOfTheWeasel
> > Emoji Lovin' Hippies!
> > annotation = @java.lang.Deprecated()
> >
> > ses@snarkive$ /usr/lib/jvm/openjdk-9-internal/bin/javac  -cp
> > build/classes/main depup/src/EyeOfTheWeasel.java
> > *depup/src/EyeOfTheWeasel.java:7: warning: [removal] Weasel in unnamed
> > package has been deprecated and marked for removal*
> > *        Weasel.main(new String[] {"UTF-8"});*
> > *        ^*
> > *1 warning*
> >
>

Reply via email to