Re: Testing enhanced @Deprecation vs. jdk 8

2017-06-09 Thread Simon Spero
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"  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"  wrote:
>
> > On Thu, Jun 8, 2017 at 12:19 PM, Gary Gregory 
> > 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*
> >
>


Re: Testing enhanced @Deprecation vs. jdk 8

2017-06-09 Thread Gary Gregory
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"  wrote:

> On Thu, Jun 8, 2017 at 12:19 PM, Gary Gregory 
> 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*
>


Testing enhanced @Deprecation vs. jdk 8

2017-06-09 Thread Simon Spero
On Thu, Jun 8, 2017 at 12:19 PM, Gary Gregory 
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*