Subject: [PATCH] gnu: maven: Add maven-doxia-sink-api

From: "Artyom V. Poptsov" <[email-masked]>
Date: Sun, 12 Jun 2022 21:25:03 +0300

Hello,

this patch adds 'Doxia Sink API'[1] under the name
'maven-doxia-sink-api'.

The module contains a Java interface that is used by Doxia Core module.

This patch is the first in the future patch set based on my effort to
add Doxia modules.

The Doxia itself required for other useful Maven plugins.

- Artyom

References:
1. https://maven.apache.org/doxia/doxia/doxia-sink-api/

From 59d2a34e7443406741d6b3b800e808467ac2254c Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Sun, 12 Jun 2022 21:11:55 +0300
Subject: [PATCH] gnu: maven: Add maven-doxia-sink-api

* gnu/packages/maven.scm (maven-doxia-sink-api): New variable.
---
 gnu/packages/maven.scm | 135 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 817fee1c71..c0609618c9 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2019 Björn Höfling <[email-masked]>
 ;;; Copyright © 2020 Efraim Flashner <[email-masked]>
+;;; Copyright © 2022 Artyom V. Poptsov <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,8 +25,10 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix svn-download)
   #:use-module (guix utils)
   #:use-module (guix build-system ant)
+  #:use-module (guix build-system maven)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
@@ -3887,3 +3890,135 @@ reports in two different file formats, plain text and xml.")))
     (description "This plugin provides the capability to build jars.  If you
 would like to sign jars please use the Maven Jarsigner Plugin instead.")
     (license license:asl2.0)))
+
+(define-public maven-plugin-plugin
+  (package
+    (name "maven-plugin-plugin")
+    (version "3.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://apache/maven/"
+                                  "plugin-tools/maven-plugin-tools-" version
+                                  "-source-release.zip"))
+              (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "maven-plugin-annotations.jar"
+       #:source-dir "maven-plugin-plugin/src/main/java"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (install-from-pom "maven-plugin-plugin/pom.xml")))))
+    (propagated-inputs
+     (list maven-artifact maven-plugin-tools-parent-pom))
+    (native-inputs
+     (list unzip))
+    (home-page "https://maven.apache.org/plugin-tools/maven-plugin-plugin/")
+    (synopsis "create a Maven plugin descriptor for any Mojo's")
+    (description "The Plugin Plugin is used to create a Maven plugin
+descriptor for any Mojo's found in the source tree, to include in the JAR. It
+is also used to generate Xdoc files for the Mojos as well as the artifact
+metadata and a generic help goal. ")
+    (license license:asl2.0)))
+
+(define-public maven-doxia-sink-api
+  (package
+    (name "maven-doxia-sink-api")
+    (version "2.0.0-M2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitbox.apache.org/repos/asf/maven-doxia.git")
+                    (commit (string-append "doxia-" version))))
+              (file-name (git-file-name "doxia" version))
+              (sha256
+               (base32
+                "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
+    (build-system ant-build-system)
+    (native-inputs
+     (list java-javax-inject))
+    (arguments
+     (list #:jar-name "doxia-core.jar"
+           #:source-dir "doxia-sink-api/src/main/java"
+           #:tests? #f))                ; no tests
+    (home-page "https://maven.apache.org/doxia/index.html")
+    (synopsis "Generic markup language interface")
+    (description "The @code{Sink} interface is a generic markup language
+interface provided as a Java API. It contains several methods that encapsulate
+common text syntax. A start tag is denoted by @code{xxxx()} method and a end
+of tag by @code{xxxx_()} method.")
+    (license license:asl2.0)))
+
+(define-public maven-doxia-core
+  (package
+    (name "maven-doxia-core")
+    (version "2.0.0-M2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitbox.apache.org/repos/asf/maven-doxia.git")
+                    (commit (string-append "doxia-" version))))
+              (file-name (git-file-name "doxia" version))
+              (sha256
+               (base32
+                "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
+    (build-system ant-build-system)
+    (inputs
+     (list maven-doxia-sink-api))
+    (native-inputs
+     (list java-javax-inject
+           java-plexus-utils
+           java-commons-lang3
+           java-slf4j-api))
+    (arguments
+     (list #:jar-name "doxia-core.jar"
+           #:source-dir "doxia-core/src/main/java"
+           #:test-dir "doxia-core/src/test"))
+    (home-page "https://maven.apache.org/doxia/index.html")
+    (synopsis "")
+    (description "")
+    (license license:asl2.0)))
+
+(define-public maven-bundle-plugin
+  (let ((revision 1865227))
+    (package
+      (name "maven-bundle-plugin")
+      (version "4.2.1")
+      (source (origin
+                (method svn-fetch)
+                (uri (svn-reference
+                      (url (string-append
+                            "http://svn.apache.org/repos/asf/felix/releases/maven-bundle-plugin-"
+                            version))
+                      (revision revision)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "15b3s7jaf2bwx1fzif0s7zbvrfqg1chdxvbrhvxkgyrnfn68ds3c"))))
+      (build-system maven-build-system)
+      (native-inputs
+       (list maven-plugin-annotations))
+      (propagated-inputs
+       (list maven-archiver
+             maven-compiler-plugin
+             maven-plugin-plugin
+             maven-3.0-artifact
+             maven-3.0-core
+             maven-3.0-plugin-api
+             maven-file-management
+             maven-shared-utils
+             java-plexus-archiver
+             java-plexus-utils))
+      ;; (propagated-inputs
+      ;;  (list maven-core
+      ;;        maven-shared-utils
+      ;;        maven-plugin-api))
+      (inputs
+       (list maven-plugin-annotations))
+      (home-page "https://felix.apache.org/documentation/_attachments/components/bundle-plugin/")
+      (synopsis "Maven plugin that supports creating an OSGi bundle")
+      (description "Provides a maven plugin that supports creating an OSGi (Open
+Service Gateway Initiative) bundle from the contents of the compilation
+classpath along with its resources and dependencies.")
+      (license license:asl2.0))))
-- 
2.25.1

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F