Subject: Re: bug#26803: [PATCH 23/36] gnu: Add java-hamcrest-all.

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

Ricardo Wurmus writes:

> * gnu/packages/java.scm (java-hamcrest-all): New variable.
> ---
>  gnu/packages/java.scm | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 2a5797a5c..8006b4d21 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1485,6 +1485,39 @@ The jMock library
>  @end itemize\n")
>      (license license:bsd-3)))
>  
> +(define-public java-hamcrest-all
> +  (package (inherit java-hamcrest-core)
> +    (name "java-hamcrest-all")
> +    (arguments
> +     (substitute-keyword-arguments (package-arguments java-hamcrest-core)
> +       ;; FIXME: a range of unit tests fail because
> +       ;; org.hamcrest.SelfDescribing is not found, although it is part of the
> +       ;; hamcrest-core library that has just been built.

This looks like fun.. :-)

> +       ((#:tests? _) #f)
> +       ((#:build-target _) "bigjar")
> +       ((#:phases phases)
> +        `(modify-phases ,phases
> +           ;; Some build targets override the classpath, so we need to patch
> +           ;; the build.xml to ensure that required dependencies are on the
> +           ;; classpath.
> +           (add-after 'unpack 'patch-classpath-for-integration
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               (substitute* "build.xml"
> +                 (("( build/hamcrest-library-\\$\\{version\\}.jar)" line)
> +                  (string-join
> +                   (cons line
> +                         (append
> +                          (find-files (assoc-ref inputs "java-junit") "\\.jar$")
> +                          (find-files (assoc-ref inputs "java-jmock") "\\.jar$")
> +                          (find-files (assoc-ref inputs "java-easymock") "\\.jar$")))
> +                   ";")))
> +               #t))))))
> +    (inputs
> +     `(("java-junit" ,java-junit)
> +       ("java-jmock" ,java-jmock-1)
> +       ("java-easymock" ,java-easymock)
> +       ,@(package-inputs java-hamcrest-core)))))
> +
>  (define-public java-jopt-simple
>    (package
>      (name "java-jopt-simple")

I learned some new constructs in this patch.

Anyway, LGTM!

Kind regards,
Roel Janssen