From patchwork Sat Jun 18 14:58:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Artyom V. Poptsov" X-Patchwork-Id: 40106 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id BE3AA27BBEA; Sat, 18 Jun 2022 15:59:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 54B1727BBE9 for ; Sat, 18 Jun 2022 15:59:12 +0100 (BST) Received: from localhost ([::1]:53360 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o2Zup-00029Z-DU for patchwork@mira.cbaines.net; Sat, 18 Jun 2022 10:59:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41052) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o2Zug-00028r-HP for guix-patches@gnu.org; Sat, 18 Jun 2022 10:59:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:55938) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o2Zug-0005MD-8h for guix-patches@gnu.org; Sat, 18 Jun 2022 10:59:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o2Zug-0002zp-3h for guix-patches@gnu.org; Sat, 18 Jun 2022 10:59:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#56054] [PATCH] gnu: Add maven-shared-invoker Resent-From: "Artyom V. Poptsov" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Jun 2022 14:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56054 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 56054@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.165556431211473 (code B ref -1); Sat, 18 Jun 2022 14:59:01 +0000 Received: (at submit) by debbugs.gnu.org; 18 Jun 2022 14:58:32 +0000 Received: from localhost ([127.0.0.1]:49834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o2ZuB-0002yy-9q for submit@debbugs.gnu.org; Sat, 18 Jun 2022 10:58:32 -0400 Received: from lists.gnu.org ([209.51.188.17]:60806) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o2Zu2-0002yi-3J for submit@debbugs.gnu.org; Sat, 18 Jun 2022 10:58:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40744) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o2Zu1-00025d-RK for guix-patches@gnu.org; Sat, 18 Jun 2022 10:58:21 -0400 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]:42884) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o2Ztz-0005Fe-5X for guix-patches@gnu.org; Sat, 18 Jun 2022 10:58:21 -0400 Received: by mail-lf1-x12e.google.com with SMTP id h36so10935634lfv.9 for ; Sat, 18 Jun 2022 07:58:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:user-agent:mime-version; bh=cJHPv6aEuU2GLPznT82Lpo+QSnAvuNTIqZUjuoGw9dc=; b=TKaaB4PShMO0yRtEHL6VpgcbjYLMlMjhnI9qGqOy08EWtf1hOz/ISHUqLy7vhe2BuB fDFoV800TPQFt9BE5/EMt9QIwA2tTvmYkZ23sKws8ZGvbJ/et7zD/zXMSvPFVvmzpS0P VnLc4l0hpEfRe67Cl9XNJ2qeYyUrv+WQgAYR9yqLri2/aPJr+JFEOX3tWj8lbhGerox8 BFCmiMNkWu6mjbAUHu2jXPBmM7z8vOjsD5HrE1+p8V0Tt1gr80TXcE8Cv38oQLEPe+42 CxEsYrIQ18LPTXc/X2f9+zDgszA1ktNLe9kKS8e8GHQ8Hk4wBojSsKlEnGdKnd+gk0WR pYpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=cJHPv6aEuU2GLPznT82Lpo+QSnAvuNTIqZUjuoGw9dc=; b=EnCk0DR4lhaxh2vh/GAtJeJFdR1otyAXqAB5ykhzS3fcKP7OYW6Eu1/L/t2hl5AGeV x3N6OcYl48KNjZHMoDWwMUoGw59K69OrJCKUWZwr6sIAlrf0XpMY+VZEp+C2yptCWVYq /LMAtTBHiYt2jkTZWf5CBH588y10CTBmNDNgjhc9ZArEXhz0eCnyBHXhYLHRKzYR+mAF a4HdVAXEjo9Frf/IbmpVYRbQVWj5ndTwGAsXB9vMEvjofW1lo48E+nhHYF87kVgLXC67 u5QrgIzXEX3DUvkufPIGl25NnumV8EaVfy+d/i3z2Ha6BgKtde1/9ILjHfzv+SHJKURW ymcg== X-Gm-Message-State: AJIora+X0Xne39zU4CPPDFEF13E6HeoGtNIign3EwY+DegCXi2Ody+uu A6bW4pNmInOIs2iQba2S8ro0Kb9Nask= X-Google-Smtp-Source: AGRyM1tcnfUkeC240fupChZcQb2/bqyy+gN1O02Y81/TOl7pw4PqPnysiqlC2al7Cueug/jN/gS9uQ== X-Received: by 2002:a05:6512:32c1:b0:479:351b:f2e2 with SMTP id f1-20020a05651232c100b00479351bf2e2mr8409604lfg.194.1655564296816; Sat, 18 Jun 2022 07:58:16 -0700 (PDT) Received: from elephant ([5.164.222.47]) by smtp.gmail.com with ESMTPSA id z1-20020a2e8e81000000b002556a17e193sm358353ljk.38.2022.06.18.07.58.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Jun 2022 07:58:16 -0700 (PDT) From: "Artyom V. Poptsov" Date: Sat, 18 Jun 2022 17:58:12 +0300 Message-ID: <87a6aavx17.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::12e; envelope-from=poptsov.artyom@gmail.com; helo=mail-lf1-x12e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches Hello, this patch adds Apache Maven Invoker[1] under the name 'maven-shared-invoker'. - Artyom References: 1. https://maven.apache.org/shared/maven-invoker/index.html From bc84964c765656cd53bc85345b30d780157818dc Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sat, 18 Jun 2022 17:05:36 +0300 Subject: [PATCH] gnu: Add maven-shared-invoker * gnu/packages/maven.scm (maven-shared-invoker): New variable. * gnu/packages/patches/maven-shared-invoker-exception-handler-fix.patch, gnu/packages/patches/maven-shared-invoker-rename-test-classes.patch: Add to the repository. * gnu/local.mk (dist_patch_DATA): Add new Maven shared invoker patches. --- gnu/local.mk | 2 + gnu/packages/maven.scm | 37 +++++ ...shared-invoker-exception-handler-fix.patch | 28 ++++ ...n-shared-invoker-rename-test-classes.patch | 126 ++++++++++++++++++ 4 files changed, 193 insertions(+) create mode 100644 gnu/packages/patches/maven-shared-invoker-exception-handler-fix.patch create mode 100644 gnu/packages/patches/maven-shared-invoker-rename-test-classes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0176585485..6d7aafb848 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1479,6 +1479,8 @@ dist_patch_DATA = \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/maven-generate-component-xml.patch \ %D%/packages/patches/maven-generate-javax-inject-named.patch \ + %D%/packages/patches/maven-shared-invoker-exception-handler-fix.patch \ + %D%/packages/patches/maven-shared-invoker-rename-test-classes.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 817fee1c71..57f469ed5d 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -765,6 +765,43 @@ plexus-utils in Maven. It is not a 100% API compatible replacement but a replacement with improvements.") (license license:asl2.0))) +(define-public maven-shared-invoker + (package + (name "maven-shared-invoker") + (version "3.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/maven/shared/" + "maven-invoker-" version "-source-release.zip")) + (sha256 + (base32 + "0yhgxvwpmyfhqaksdfmj9c4ml4pj60gnin8bq1a92ximf1dyyjyc")) + (patches + (search-patches + "maven-shared-invoker-exception-handler-fix.patch" + "maven-shared-invoker-rename-test-classes.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-shared-invoker.jar" + #:source-dir "src/main/java" + #:tests? #f)) ; Tests require Maven itself + (propagated-inputs + (list maven-parent-pom-35)) + (native-inputs + (list unzip + maven-surefire-plugin + java-javax-inject + java-junit)) + (home-page "https://maven.apache.org/shared/maven-invoker/index.html") + (synopsis "Invoke Maven programmatically") + (description "The API of this module is concerned with firing a Maven +build in a new JVM. It accomplishes its task by building up a conventional +Maven command line from options given in the current request, along with those +global options specified in the invoker itself. Once it has the command line, +the invoker will execute it, and capture the resulting exit code or any +exception thrown to signal a failure to execute.") + (license license:asl2.0))) + (define-public maven-plugin-annotations (package (name "maven-plugin-annotations") diff --git a/gnu/packages/patches/maven-shared-invoker-exception-handler-fix.patch b/gnu/packages/patches/maven-shared-invoker-exception-handler-fix.patch new file mode 100644 index 0000000000..eb572f7c26 --- /dev/null +++ b/gnu/packages/patches/maven-shared-invoker-exception-handler-fix.patch @@ -0,0 +1,28 @@ +From 30e9cde32c1e2513ca1f656fa5043c05935f2645 Mon Sep 17 00:00:00 2001 +From: "Artyom V. Poptsov" +Date: Tue, 14 Jun 2022 23:53:13 +0300 +Subject: [PATCH 1/2] MavenCommandLineBuilder: Fix exception handling + +* src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java + (setGoals): Catch 'Exception' instead of 'CommandLineException' as + 'CommandLineException' is never thrown in the "try" block. +--- + .../apache/maven/shared/invoker/MavenCommandLineBuilder.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java b/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java +index 7c7e985..eaf8333 100644 +--- a/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java ++++ b/src/main/java/org/apache/maven/shared/invoker/MavenCommandLineBuilder.java +@@ -257,7 +257,7 @@ public class MavenCommandLineBuilder + { + cli.createArg().setLine( StringUtils.join( goals.iterator(), " " ) ); + } +- catch ( CommandLineException e ) ++ catch ( Exception e ) + { + throw new CommandLineConfigurationException( "Problem to set goals: " + e.getMessage(), e ); + } +-- +2.25.1 + diff --git a/gnu/packages/patches/maven-shared-invoker-rename-test-classes.patch b/gnu/packages/patches/maven-shared-invoker-rename-test-classes.patch new file mode 100644 index 0000000000..7ffb6fed9b --- /dev/null +++ b/gnu/packages/patches/maven-shared-invoker-rename-test-classes.patch @@ -0,0 +1,126 @@ +From 4bce3183b25c44ab406c2f4d8541a0a520b15a3d Mon Sep 17 00:00:00 2001 +From: "Artyom V. Poptsov" +Date: Wed, 15 Jun 2022 07:09:29 +0300 +Subject: [PATCH 2/2] test: Rename some classes to avoid name conflicts + +* src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/App.java: + Rename to + "src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java" +* src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTest.java + Rename to + "src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTimeoutTest.java" +* src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppTest.java: + Rename to + "src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppShouldSucceedTest.java" +* src/test/resources/test-build-should-succeed/src/main/java/org/apache/maven/shared/invoker/App.java: + Rename to + "src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java". +--- + ...AppTest.java => AppShouldSucceedTest.java} | 4 +-- + .../org/apache/maven/shared/invoker/App.java | 32 ------------------- + .../maven/shared/invoker/AppTimeout.java} | 2 +- + .../{AppTest.java => AppTimeoutTest.java} | 2 +- + 4 files changed, 4 insertions(+), 36 deletions(-) + rename src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/{AppTest.java => AppShouldSucceedTest.java} (94%) + delete mode 100644 src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/App.java + rename src/test/resources/{test-build-should-succeed/src/main/java/org/apache/maven/shared/invoker/App.java => test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java} (97%) + rename src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/{AppTest.java => AppTimeoutTest.java} (97%) + +diff --git a/src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppTest.java b/src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppShouldSucceedTest.java +similarity index 94% +rename from src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppTest.java +rename to src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppShouldSucceedTest.java +index 785d70c..9b5bb0a 100644 +--- a/src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppTest.java ++++ b/src/test/resources/test-build-should-succeed/src/test/java/org/apache/maven/shared/invoker/AppShouldSucceedTest.java +@@ -26,7 +26,7 @@ import junit.framework.TestSuite; + /** + * Unit test for simple App. + */ +-public class AppTest ++public class AppShouldSucceedTest + extends TestCase + { + /** +@@ -34,7 +34,7 @@ public class AppTest + * + * @param testName name of the test case + */ +- public AppTest( String testName ) ++ public AppShouldSucceedTest( String testName ) + { + super( testName ); + } +diff --git a/src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/App.java b/src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/App.java +deleted file mode 100644 +index 753a51c..0000000 +--- a/src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/App.java ++++ /dev/null +@@ -1,32 +0,0 @@ +-package org.apache.maven.shared.invoker; +- +-/* +- * Licensed to the Apache Software Foundation (ASF) under one +- * or more contributor license agreements. See the NOTICE file +- * distributed with this work for additional information +- * regarding copyright ownership. The ASF licenses this file +- * to you under the Apache License, Version 2.0 (the +- * "License"); you may not use this file except in compliance +- * with the License. You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, +- * software distributed under the License is distributed on an +- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +- * KIND, either express or implied. See the License for the +- * specific language governing permissions and limitations +- * under the License. +- */ +- +-/** +- * Hello world! +- * +- */ +-public class App +-{ +- public static void main( String[] args ) +- { +- System.out.println( "Hello World!" ); +- } +-} +diff --git a/src/test/resources/test-build-should-succeed/src/main/java/org/apache/maven/shared/invoker/App.java b/src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java +similarity index 97% +rename from src/test/resources/test-build-should-succeed/src/main/java/org/apache/maven/shared/invoker/App.java +rename to src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java +index 753a51c..d94b104 100644 +--- a/src/test/resources/test-build-should-succeed/src/main/java/org/apache/maven/shared/invoker/App.java ++++ b/src/test/resources/test-build-should-timeout/src/main/java/org/apache/maven/shared/invoker/AppTimeout.java +@@ -23,7 +23,7 @@ package org.apache.maven.shared.invoker; + * Hello world! + * + */ +-public class App ++public class AppTimeout + { + public static void main( String[] args ) + { +diff --git a/src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTest.java b/src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTimeoutTest.java +similarity index 97% +rename from src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTest.java +rename to src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTimeoutTest.java +index 27808ea..2bdeda4 100644 +--- a/src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTest.java ++++ b/src/test/resources/test-build-should-timeout/src/test/java/org/apache/maven/shared/invoker/AppTimeoutTest.java +@@ -24,7 +24,7 @@ import org.junit.Test; + /** + * Unit test for simple App. + */ +-public class AppTest ++public class AppTimeoutTest + { + + /** +-- +2.25.1 + -- 2.25.1