GNU bug report logs -
#26803
Java things
Previous Next
Reported by: Ricardo Wurmus <rekado <at> elephly.net>
Date: Sat, 6 May 2017 14:02:02 UTC
Severity: normal
Done: Ricardo Wurmus <rekado <at> elephly.net>
Bug is archived. No further changes may be made.
Full log
Message #254 received at 26803 <at> debbugs.gnu.org (full text, mbox):
Ricardo Wurmus writes:
> * gnu/packages/java.scm (java-mockito): New variable.
> ---
> gnu/packages/java.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 60 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 859f9934a..2cf2821c0 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1977,6 +1977,66 @@ logging implementations. A library that uses the commons-logging API can be
> used with any logging implementation at runtime.")
> (license license:asl2.0)))
>
> +;; This is the last release of the 1.x series.
> +(define-public java-mockito-1
> + (package
> + (name "java-mockito")
> + (version "1.10.19")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append "http://repo1.maven.org/maven2/"
> + "org/mockito/mockito-core/" version
> + "/mockito-core-" version "-sources.jar"))
> + (sha256
> + (base32
> + "0vmiwnwpf83g2q7kj1rislmja8fpvqkixjhawh7nxnygx6pq11kc"))))
> + (build-system ant-build-system)
> + (arguments
> + `(#:jar-name "mockito.jar"
> + #:tests? #f ; no tests included
> + ;; FIXME: patch-and-repack does not support jars, so we have to apply
> + ;; patches in build phases.
> + #:phases
> + (modify-phases %standard-phases
> + ;; Mockito fails to build with our verson of hamcrest without this
> + ;; definition.
> + (add-after 'unpack 'fix-hamcrest-build-error
> + (lambda _
> + (substitute* "src/org/mockito/internal/matchers/LocalizedMatcher.java"
> + (("public Matcher getActualMatcher\\(\\) .*" line)
> + (string-append "
> + public void describeMismatch(Object item, Description description) {
> + actualMatcher.describeMismatch(item, description);
> + }"
> + line)))
> + #t))
I understand this is easier and possibly less error-prone than creating
a patch file instead, but how far are we going with adding/removing code
inside the package recipes?
As far as the actual code addition goes, it is pretty straightforward:
It adds a function that hamcrest expects is available. Maybe add a
comment describing this? Then it's OK to me.
> + ;; Mockito bundles cglib. We have a cglib package, so let's use
> + ;; that instead.
> + (add-after 'unpack 'use-system-libraries
> + (lambda _
> + (with-directory-excursion "src/org/mockito/internal/creation/cglib"
> + (substitute* '("CGLIBHacker.java"
> + "CglibMockMaker.java"
> + "ClassImposterizer.java"
> + "DelegatingMockitoMethodProxy.java"
> + "MethodInterceptorFilter.java"
> + "MockitoNamingPolicy.java"
> + "SerializableMockitoMethodProxy.java"
> + "SerializableNoOp.java")
> + (("import org.mockito.cglib") "import net.sf.cglib")))
> + #t)))))
Nice unbundling!
> + (inputs
> + `(("java-junit" ,java-junit)
> + ("java-objenesis" ,java-objenesis)
> + ("java-cglib" ,java-cglib)
> + ("java-hamcrest-core" ,java-hamcrest-core)))
> + (home-page "http://mockito.org")
> + (synopsis "Mockito is a mock library for Java")
> + (description "Mockito is a mocking library for Java which lets you write
> +tests with a clean and simple API. It generates mocks using reflection, and
> +it records all mock invocations, including methods arguments.")
> + (license license:asl2.0)))
> +
> (define-public java-commons-cli
> (package
> (name "java-commons-cli")
Otherwise, LGTM!
Kind regards,
Roel Janssen
This bug report was last modified 8 years and 94 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.