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

From: Ricardo Wurmus <[email-masked]>
Date: Sat, 6 May 2017 17:36:04 +0200

* 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.
+       ((#: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")
-- 
2.12.2