Subject: [bug#30417] [PATCH 05/11] gnu: Add java-sisu-build-api.

From: Björn Höfling <[email-masked]>
Date: Wed, 14 Feb 2018 20:53:33 +0100

On Sun, 11 Feb 2018 00:04:32 +0100
Julien Lepiller <[email-masked]> wrote:

> * gnu/packages/java.scm (java-sisu-build-api): New variable.
> ---
>  gnu/packages/java.scm | 54
> +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed,
> 54 insertions(+)
> 
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 29439d667..af9acd71f 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -2757,6 +2757,60 @@ compilers.")
>      (description "This package contains the Javac Compiler support
> for Plexus Compiler component.")))
>  
> +(define-public java-sisu-build-api
> +  (package
> +    (name "java-sisu-build-api")
> +    (version "0.0.7")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> "https://github.com/sonatype/sisu-build-api/"
> +                                  "archive/plexus-build-api-"
> version ".tar.gz"))
> +              (sha256
> +               (base32
> +
> "1c3rrpma3x634xp2rm2p5iskfhzdyc7qfbhjzr70agrl1jwghgy2"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:jar-name "sisu-build-api.jar"
> +       #:source-dir "src/main/java"
> +       #:jdk ,icedtea-8
> +       #:tests? #f; FIXME: how to run the tests?
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'build 'copy-resurces
> +           (lambda _
> +             (mkdir-p
> "build/classes/org/sonatype/plexus/build/incremental")
> +             (copy-file
> "src/main/resources/org/sonatype/plexus/build/incremental/version.properties"
> +
> "build/classes/org/sonatype/plexus/build/incremental/version.properties")

The content of this file is:

api.version = ${project.version}

Is that OK? Or should we better write the correct version into the file?

> +             #t))
> +         (add-before 'build 'generate-plexus-compontent
> +           (lambda _
> +             (mkdir-p "build/classes/META-INF/plexus")
> +             ;; This file is required for plexus to inject this
> package.
> +             ;; FIXME: how is it generated?
> +             (with-output-to-file
> "build/classes/META-INF/plexus/components.xml"
> +               (lambda _
> +                 (display
> +                   "<component-set>\n
> +  <components>\n
> +    <component>\n
> +
> <role>org.sonatype.plexus.build.incremental.BuildContext</role>\n
> +      <role-hint>default</role-hint>\n
> +
> <implementation>org.sonatype.plexus.build.incremental.DefaultBuildContext</implementation>\n
> +      <description>Filesystem based non-incremental build context
> implementation which behaves as if all files\n +were just
> created.</description>\n
> +    </component>\n
> +  </components>\n
> +</component-set>\n"))))))))

R5RS specifies that "with-output-to-file re-turn(s) the value(s)
yielded by thunk". As your last call within thunk is "(display..."),
the return value is unspecified. Add a "#t" to either the thunk or
after (call-with-output-to-file ..").

Linter complained about some too long lines, but I think that's OK. At
least I wouldn't know how to do better.

Otherwise, LGTM.

Björn