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

Reply via email to