Subject: [bug#30417] [PATCH 06/11] gnu: Add java-modello-core.

From: Björn Höfling <[email-masked]>
Date: Wed, 14 Feb 2018 21:22:25 +0100

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

> * gnu/packages/java.scm (java-modello-core): New variable.
> ---
>  gnu/packages/java.scm | 50
> ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50
> insertions(+)
> 
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index af9acd71f..d75960831 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -2811,6 +2811,56 @@ a default implementation of it.  This API is
> about scanning files in a project and determining what files need to
> be rebuilt.") (license license:asl2.0)))
>  
> +(define-public java-modello-core
> +  (package
> +    (name "java-modello-core")
> +    (version "1.9.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> "https://github.com/codehaus-plexus/modello"
> +                                  "/archive/modello-" version
> ".tar.gz"))
> +              (sha256
> +               (base32
> +
> "0l2pvns8pmlrmjm3iknp7gpg3654y1m8qhy55b19sdwdchdcyxfh"))))
> +    (build-system ant-build-system)
> +    (arguments
> +     `(#:jar-name "modello-core.jar"
> +       #:source-dir "modello-core/src/main/java"
> +       #:test-dir "modello-core/src/test"
> +       #:main-class "org.codehaus.modello.ModelloCli"
> +       #:jdk ,icedtea-8
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'build 'copy-resources
> +           (lambda _
> +             (mkdir-p "build/classes/META-INF/plexus")
> +             (copy-file
> "modello-core/src/main/resources/META-INF/plexus/components.xml"
> +
> "build/classes/META-INF/plexus/components.xml")
> +             #t))
> +         (add-before 'check 'fix-tests
> +           (lambda _
> +             (substitute*
> '("modello-core/src/test/java/org/codehaus/modello/core/DefaultModelloCoreTest.java"
> +
> "modello-core/src/test/java/org/codehaus/modello/core/io/ModelReaderTest.java")
> +               (("src/test") "modello-core/src/test")))))))
> +    (inputs
> +     `(("java-plexus-utils" ,java-plexus-utils)
> +
> ("java-plexus-container-default-bootstrap" ,java-plexus-container-default-bootstrap)
> +       ("java-sisu-build-api" ,java-sisu-build-api)))
> +    (native-inputs
> +     `(("java-junit" ,java-junit)
> +       ("java-plexus-classworlds" ,java-plexus-classworlds)
> +       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
> +       ("java-guava" ,java-guava)))
> +    (home-page "http://codehaus-plexus.github.io/modello/")
> +    (synopsis "Framework for code generation from a simple model")
> +    (description "Modello is a framework for code generation from a
> simple model. +
> +Modello generates code from a simple model format: based on a plugin
> +architecture, various types of code and descriptors can be generated
> from the +single model, including Java POJOs, XML/JSON/YAML
> marshallers/unmarshallers, +XSD and documentation.")
> +    (license license:asl2.0)))

I'm not sure about how to declare the license:

If you consider only the code under modello-core, that is only
license:expat (if I havent overseen anything).

But as you are not working with snippets here, I think you have to look
at every file in the original source package. And there I found three
types of licenses:

* expat, as above
* asl2.0, like
  in ./modello-plugins/modello-plugin-stax/src/test/java/org/codehaus/modello/generator/xml/stax/BooleanTypeStaxGeneratorTest.java
* Finally, some kind of "5-clause-BSD":
./modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/javasource/JNaming.java
I always have my troubles matching a license text to one of the
available licenses, so I quote it in full here:

/**
 * Redistribution and use of this software and associated documentation
 * ("Software"), with or without modification, are permitted provided
 * that the following conditions are met:
 *
 * 1. Redistributions of source code must retain copyright
 *    statements and notices.  Redistributions must also contain a
 *    copy of this document.
 *
 * 2. Redistributions in binary form must reproduce the
 *    above copyright notice, this list of conditions and the
 *    following disclaimer in the documentation and/or other
 *    materials provided with the distribution.
 *
 * 3. The name "Exolab" must not be used to endorse or promote
 *    products derived from this Software without prior written
 *    permission of Intalio, Inc.  For written permission,
 *    please contact [email-masked].
 *
 * 4. Products derived from this Software may not be called "Exolab"
 *    nor may "Exolab" appear in their names without prior written
 *    permission of Intalio, Inc. Exolab is a registered
 *    trademark of Intalio, Inc.
 *
 * 5. Due credit should be given to the Exolab Project
 *    (http://www.codehaus.org/).
 *
 * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Copyright 1999-2000 (C) Intalio, Inc. All Rights Reserved.
 *
 * $Id$
 */

> +
>  (define-public java-asm
>    (package
>      (name "java-asm")

Linter found 3 lines too long:

/home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
[email-masked]: line 2930 is way too long (110
characters) /home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
[email-masked]: line 2931 is way too long (107
characters) /home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
[email-masked]: line 2935 is way too long (91 characters)

The first ones are the substitute*, I think that is OK. The last one
is the dependency:

       ("java-plexus-container-default-bootstrap" ,java-plexus-container-default-bootstrap)

That could be broken up in two lines.

Björn