Subject: bug#26803: [PATCH 25/36] gnu: Add java-guava.

From: Roel Janssen <[email-masked]>
Date: Wed, 10 May 2017 20:06:18 +0200

Ricardo Wurmus writes:

> * gnu/packages/java.scm (java-guava): New variable.
> ---
>  gnu/packages/java.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 3a104f4c5..a9faf681d 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1878,6 +1878,58 @@ included:
>  It provides packages in the @code{javax.annotations} namespace.")
>      (license license:asl2.0)))
>  
> +(define-public java-guava
> +  (package
> +    (name "java-guava")
> +    ;; This is the last release of Guava that can be built with Java 7.
> +    (version "20.0")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://github.com/google/guava/"
> +                                  "releases/download/v" version
> +                                  "/guava-" version "-sources.jar"))
> +              (sha256
> +               (base32
> +                "1gawrs5gi6j5hcfxdgpnfli75vb9pfi4sn09pnc8xacr669yajwr"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:tests? #f                      ; no tests included

Not really important.  But should we indent the comments this way?

> +       #:jar-name "guava.jar"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'trim-sources
> +           (lambda _
> +             (with-directory-excursion "src/com/google/common"
> +               ;; Remove annotations to avoid extra dependencies:
> +               ;; * "j2objc" annotations are used when converting Java to
> +               ;;   Objective C;
> +               ;; * "errorprone" annotations catch common Java mistakes at
> +               ;;   compile time;
> +               ;; * "IgnoreJRERequirement" is used for Android.
> +               (substitute* (find-files "." "\\.java$")
> +                 (("import com.google.j2objc.*") "")
> +                 (("import com.google.errorprone.annotation.*") "")
> +                 (("import org.codehaus.mojo.animal_sniffer.*") "")
> +                 (("@CanIgnoreReturnValue") "")
> +                 (("@LazyInit") "")
> +                 (("@WeakOuter") "")
> +                 (("@RetainedWith") "")
> +                 (("@Weak") "")
> +                 (("@ForOverride") "")
> +                 (("@J2ObjCIncompatible") "")
> +                 (("@IgnoreJRERequirement") "")))
> +             #t)))))
> +    (inputs
> +     `(("java-jsr305" ,java-jsr305)))
> +    (home-page "https://github.com/google/guava")
> +    (synopsis "Google core libraries for Java")
> +    (description "Guava is a set of core libraries that includes new
> +collection types (such as multimap and multiset), immutable collections, a
> +graph library, functional types, an in-memory cache, and APIs/utilities for
> +concurrency, I/O, hashing, primitives, reflection, string processing, and much
> +more!")
> +    (license license:asl2.0)))
> +
>  (define-public java-commons-cli
>    (package
>      (name "java-commons-cli")

LGTM!

Kind regards,
Roel Janssen