Subject: bug#26803: [PATCH 16/36] gnu: Add java-commons-lang.

From: Roel Janssen <[email-masked]>
Date: Mon, 08 May 2017 12:46:15 +0200

Ricardo Wurmus writes:

> From: Hartmut Goebel <[email-masked]>
>
> * gnu/packages/java.scm (java-commons-lang): New variable.
>
> Co-authored-by: Ricardo Wurmus <[email-masked]>
> ---
>  gnu/packages/java.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index c9707d0d2..7a68b6bd6 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1665,3 +1665,58 @@ are many features, including:
>      (description "Commons-IO contains utility classes, stream implementations,
>  file filters and endian classes.")
>      (license license:asl2.0)))
> +
> +(define-public java-commons-lang
> +  (package
> +    (name "java-commons-lang")
> +    (version "2.6")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://apache/commons/lang/source/"
> +                           "commons-lang-" version "-src.tar.gz"))
> +       (sha256
> +        (base32 "1mxwagqadzx1b2al7i0z1v0r235aj2njdyijf02szq0vhmqrfiq5"))))
> +    (build-system ant-build-system)
> +    (outputs '("out" "doc"))
> +    (arguments
> +     `(#:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'build 'build-javadoc ant-build-javadoc)
> +         (add-before 'check 'disable-failing-test
> +           (lambda _
> +             ;; Disable a failing test
> +             (substitute* "src/test/java/org/apache/commons/lang/\
> +time/FastDateFormatTest.java"
> +               (("public void testFormat\\(\\)")
> +                "public void disabled_testFormat()"))
> +             #t))

Since you're renaming the function, I suppose removing the function
would also work, which would not create any "dead code".  But that
probably requires a separate patch file, which will break more easily
on an update.

So long story short:  This is OK to me, even though I don't like
producing code that won't be run anyway.

> +         (replace 'install (install-jars "target"))
> +         (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
> +    (native-inputs
> +     `(("java-junit" ,java-junit)))
> +    (home-page "http://commons.apache.org/lang/")
> +    (synopsis "Extension of the java.lang package")
> +    (description "The Commons Lang components contains a set of Java classes
> +that provide helper methods for standard Java classes, especially those found
> +in the @code{java.lang} package in the Sun JDK.  The following classes are
> +included:
> +
> +@itemize
> +@item StringUtils - Helper for @code{java.lang.String}.
> +@item CharSetUtils - Methods for dealing with @code{CharSets}, which are sets
> +  of characters such as @code{[a-z]} and @code{[abcdez]}.
> +@item RandomStringUtils - Helper for creating randomised strings.
> +@item NumberUtils - Helper for @code{java.lang.Number} and its subclasses.
> +@item NumberRange - A range of numbers with an upper and lower bound.
> +@item ObjectUtils - Helper for @code{java.lang.Object}.
> +@item SerializationUtils - Helper for serializing objects.
> +@item SystemUtils - Utility class defining the Java system properties.
> +@item NestedException package - A sub-package for the creation of nested
> +  exceptions.
> +@item Enum package - A sub-package for the creation of enumerated types.
> +@item Builder package - A sub-package for the creation of @code{equals},
> +  @code{hashCode}, @code{compareTo} and @code{toString} methods.
> +@end itemize\n")
> +    (license license:asl2.0)))

I've seen the '\n' on an earlier patch as well.  Why is it neccessary?

Otherwise, LGTM!

Kind regards,
Roel Janssen