I agree. If we don't deprecate it now, and agree to release the next major version targeting Java 7, we would remove those methods without ever mentioning it before.
Thanks for adding the suppressions, btw :-) Benedikt 2013/10/19 Henri Yandell <flame...@gmail.com> > My tuppence: > > Lang 3 targets Java 6, but users can go upgrade to Java 7. So the > deprecated warnings are actionable by changing your code to Java 7. > > Internal use - would this lead to warnings? As long as it isn't leading to > warnings, updating internal is only a best practice and in this case > wouldn't be possible as we're the ones stuck on Java 6. > > Hen > > > On Fri, Oct 18, 2013 at 9:25 AM, Matt Benson <gudnabr...@gmail.com> wrote: > > > Perhaps we need some other kind of pre-deprecation convention. > > > > Matt > > > > > > On Fri, Oct 18, 2013 at 11:14 AM, sebb <seb...@gmail.com> wrote: > > > > > When adding an @depecrated annotation, please add the version in which > > > the code was deprecated. > > > > > > Also, although the comment provides an alternative method, it's not > > > actually available until Java 7. > > > As Lang currently targets Java 6, that is not helpful to end users. > > > How are they supposed to avoid the warnings? > > > Also, Lang code itself uses the deprecated code. > > > When deprecating methods, the first thing that should be changed is > > > internal uses. > > > That helps ensure that the replacement works OK. > > > > > > [It's OK for test code to use deprecated methods] > > > > > > I think we need to either provide new methods which are available with > > > Java 1.6, or delay the deprecation until the code requires Java 7 as > > > minimum. > > > > > > On 14 October 2013 19:36, Benedikt Ritter <brit...@apache.org> wrote: > > > > Hi Matt, > > > > > > > > (fired the last one without adding my comment :-) > > > > > > > > > > > > 2013/10/14 Benedikt Ritter <benerit...@gmail.com> > > > > > > > >> > > > >> > > > >> > > > >> 2013/10/14 Matt Benson <gudnabr...@gmail.com> > > > >> > > > >>> Hi Benedikt, see inline: > > > >>> > > > >>> > > > >>> On Mon, Oct 14, 2013 at 1:15 PM, <brit...@apache.org> wrote: > > > >>> > > > >>> > Author: britter > > > >>> > Date: Mon Oct 14 18:15:39 2013 > > > >>> > New Revision: 1532011 > > > >>> > > > > >>> > URL: http://svn.apache.org/r1532011 > > > >>> > Log: > > > >>> > Deprecate methods that are available in Java 7's > java.lang.Objects > > > >>> > > > > >>> > Modified: > > > >>> > > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java > > > >>> > > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ObjectUtils.java > > > >>> > > > > >>> > Modified: > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java > > > >>> > URL: > > > >>> > > > > >>> > > > > > > http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java?rev=1532011&r1=1532010&r2=1532011&view=diff > > > >>> > > > > >>> > > > > >>> > > > > > > ============================================================================== > > > >>> > --- > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java > > > >>> > (original) > > > >>> > +++ > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java > > > >>> > Mon Oct 14 18:15:39 2013 > > > >>> > @@ -199,6 +199,8 @@ public class ArrayUtils { > > > >>> > * @param array1 the left hand array to compare, may be > > {@code > > > >>> null} > > > >>> > * @param array2 the right hand array to compare, may be > > {@code > > > >>> null} > > > >>> > * @return {@code true} if the arrays are equal > > > >>> > + * @deprecated this method has been replaced by {@code > > > >>> > java.util.Objects.deepEquals(Object, Object)} and will be > > > >>> > + * removed from future releases. > > > >>> > */ > > > >>> > public static boolean isEquals(final Object array1, final > > Object > > > >>> > array2) { > > > >>> > return new EqualsBuilder().append(array1, > > > array2).isEquals(); > > > >>> > > > > >>> > Modified: > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ObjectUtils.java > > > >>> > URL: > > > >>> > > > > >>> > > > > > > http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ObjectUtils.java?rev=1532011&r1=1532010&r2=1532011&view=diff > > > >>> > > > > >>> > > > > >>> > > > > > > ============================================================================== > > > >>> > --- > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ObjectUtils.java > > > >>> > (original) > > > >>> > +++ > > > >>> > > > > >>> > > > > > > commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ObjectUtils.java > > > >>> > Mon Oct 14 18:15:39 2013 > > > >>> > @@ -149,6 +149,8 @@ public class ObjectUtils { > > > >>> > * @param object1 the first object, may be {@code null} > > > >>> > * @param object2 the second object, may be {@code null} > > > >>> > * @return {@code true} if the values of both objects are > the > > > same > > > >>> > + * @deprecated this method has been replaces by {@code > > > >>> > java.util.Objects.equals(Object, Object)} in Java 7 and will > > > >>> > + * be removed from future releases. > > > >>> > */ > > > >>> > public static boolean equals(final Object object1, final > > Object > > > >>> > object2) { > > > >>> > if (object1 == object2) { > > > >>> > @@ -195,6 +197,8 @@ public class ObjectUtils { > > > >>> > * @param obj the object to obtain the hash code of, may be > > > {@code > > > >>> > null} > > > >>> > * @return the hash code of the object, or zero if null > > > >>> > * @since 2.1 > > > >>> > + * @deprecated this method has been replaced by {@code > > > >>> > java.util.Objects.hashCode(Object)} in Java 7 and will be > > > >>> > + * removed in future releases > > > >>> > */ > > > >>> > public static int hashCode(final Object obj) { > > > >>> > // hashCode(Object) retained for performance, as hash > code > > > is > > > >>> > often critical > > > >>> > @@ -220,6 +224,8 @@ public class ObjectUtils { > > > >>> > * @param objects the objects to obtain the hash code of, > may > > > be > > > >>> > {@code null} > > > >>> > * @return the hash code of the objects, or zero if null > > > >>> > * @since 3.0 > > > >>> > + * @deprecated this method has been replaced by {@code > > > >>> > java.util.Objects.hash(Object...)} in Java 7 an will be > > > >>> > + * removed in future releases. > > > >>> > */ > > > >>> > public static int hashCodeMulti(final Object... objects) { > > > >>> > int hash = 1; > > > >>> > @@ -373,6 +379,9 @@ public class ObjectUtils { > > > >>> > * @param obj the Object to {@code toString}, may be null > > > >>> > * @return the passed in Object's toString, or {@code ""} if > > > {@code > > > >>> > null} input > > > >>> > * @since 2.0 > > > >>> > + * @deprecated this method has been replaces by {@code > > > >>> > java.util.Objects.toString(Object)} in Java 7 and will be > > > >>> > + * removed in future releases. Note however that said method > > > will > > > >>> > return "null" for null references, while this > > > >>> > + * method returns and empty String. To preserve behavior use > > > {@code > > > >>> > java.util.Objects.toString(myObject, "")} > > > >>> > > > > >>> > > > >>> My preference here would be to begin providing > > > >>> ObjectUtils#defaultString(Object) with the existing "", intended to > > > >>> survive > > > >>> beyond the removal of ObjectUtils.toString(). This will: > > > >>> * preserve the users' ability to call a method that implicitly > uses > > "" > > > >>> * reduce confusion with Objects.toString(), and > > > >>> * enforce mnemonic retention by using the same > terminology/behavior > > as > > > >>> StringUtils#defaultString() > > > >>> > > > >>> I'd welcome assenting or dissenting opinions here from other > > committers > > > >>> and > > > >>> users. > > > >>> > > > >> > > > > Makes sense to me. So if nobody objects, feel free to change it like > > > that. > > > > > > > > > > > >> > > > >>> Matt > > > >>> > > > >>> > > > >>> > */ > > > >>> > public static String toString(final Object obj) { > > > >>> > return obj == null ? "" : obj.toString(); > > > >>> > @@ -396,6 +405,8 @@ public class ObjectUtils { > > > >>> > * @param nullStr the String to return if {@code null} > input, > > > may > > > >>> be > > > >>> > null > > > >>> > * @return the passed in Object's toString, or {@code > nullStr} > > > if > > > >>> > {@code null} input > > > >>> > * @since 2.0 > > > >>> > + * @deprecated this method has been replaces by {@code > > > >>> > java.util.Objects.toString(Object, String)} in Java 7 and > > > >>> > + * will be removed in future releases. > > > >>> > */ > > > >>> > public static String toString(final Object obj, final String > > > >>> nullStr) > > > >>> > { > > > >>> > return obj == null ? nullStr : obj.toString(); > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > >> > > > >> > > > > > > > > > > > > -- > > > > http://people.apache.org/~britter/ > > > > http://www.systemoutprintln.de/ > > > > http://twitter.com/BenediktRitter > > > > http://github.com/britter > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > > > For additional commands, e-mail: dev-h...@commons.apache.org > > > > > > > > > -- http://people.apache.org/~britter/ http://www.systemoutprintln.de/ http://twitter.com/BenediktRitter http://github.com/britter