summaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm2133
1 files changed, 1956 insertions, 177 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 17adcf83bf7..51af5ba2952 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -51,9 +51,11 @@
51 #:use-module (guix gexp) 51 #:use-module (guix gexp)
52 #:use-module (guix build-system ant) 52 #:use-module (guix build-system ant)
53 #:use-module (guix build-system cmake) 53 #:use-module (guix build-system cmake)
54 #:use-module (guix build-system copy)
54 #:use-module (guix build-system gnu) 55 #:use-module (guix build-system gnu)
55 #:use-module (guix build-system maven) 56 #:use-module (guix build-system maven)
56 #:use-module (guix build-system pyproject) 57 #:use-module (guix build-system pyproject)
58 #:use-module (guix build-system trivial)
57 #:use-module (gnu packages) 59 #:use-module (gnu packages)
58 #:use-module (gnu packages attr) 60 #:use-module (gnu packages attr)
59 #:use-module (gnu packages autotools) 61 #:use-module (gnu packages autotools)
@@ -86,6 +88,7 @@
86 #:use-module (gnu packages maven) 88 #:use-module (gnu packages maven)
87 #:use-module (gnu packages maven-parent-pom) 89 #:use-module (gnu packages maven-parent-pom)
88 #:use-module (gnu packages ncurses) 90 #:use-module (gnu packages ncurses)
91 #:use-module (gnu packages ninja)
89 #:use-module (gnu packages nss) 92 #:use-module (gnu packages nss)
90 #:use-module (gnu packages onc-rpc) 93 #:use-module (gnu packages onc-rpc)
91 #:use-module (gnu packages web) 94 #:use-module (gnu packages web)
@@ -1865,12 +1868,50 @@ blacklisted.certs.pem"
1865 1868
1866(define-public openjdk25 1869(define-public openjdk25
1867 (make-openjdk 1870 (make-openjdk
1868 openjdk24 "25" 1871 openjdk24 "25.0.1"
1869 "15yzj370qgkh7jfcm2jzr8g7ah9x0p8m85ang7q4y6lnzk23ni76")) 1872 "10v7pr0aplv7qjpnqbgh27lcm89ixhg5g62ydg0dvcj0d24r95xp"
1873 (outputs '("out" "jdk" "doc" "graal-builder-jdk"))
1874 (arguments
1875 (substitute-keyword-arguments (package-arguments base)
1876 ;; Set version string to "25.0.1+8" instead of "25.0.1+-adhoc...".
1877 ;; GraalVM's JVMCIVersionCheck requires java.vm.version to be parseable
1878 ;; as a release version (pre() empty or "ea"), not an adhoc build.
1879 ;; Build number 8 comes from the jdk-25.0.1+8 tag which points to the
1880 ;; same commit as jdk-25.0.1-ga (78770bfaefd23ae77ec4f8ddd769c1c2d9c282df).
1881 ((#:configure-flags flags #~'())
1882 #~(append #$flags
1883 '("--with-version-opt="
1884 "--with-version-build=8")))
1885 ((#:phases phases)
1886 #~(modify-phases #$phases
1887 ;; Build graal-builder-image after the regular images.
1888 (add-after 'build 'build-graal-builder-image
1889 (lambda* (#:key parallel-build? make-flags #:allow-other-keys)
1890 (apply invoke "make" "graal-builder-image"
1891 `(,@(if parallel-build?
1892 (list (string-append "JOBS="
1893 (number->string (parallel-job-count))))
1894 '("JOBS=1"))
1895 ,@make-flags))))
1896 ;; Install the graal-builder-jdk to the extra output.
1897 (add-after 'install 'install-graal-builder-jdk
1898 (lambda* (#:key outputs #:allow-other-keys)
1899 (let ((images (car (find-files "build" "-server-release"
1900 #:directories? #t))))
1901 (copy-recursively (string-append images "/images/graal-builder-jdk")
1902 (assoc-ref outputs "graal-builder-jdk")))))
1903 ;; Create libjvm.so symlink for graal-builder-jdk output.
1904 (add-after 'install-graal-builder-jdk 'install-libjvm-graal-builder-jdk
1905 (lambda* (#:key outputs #:allow-other-keys)
1906 (let ((lib-graal (string-append (assoc-ref outputs "graal-builder-jdk")
1907 "/lib")))
1908 (symlink (string-append lib-graal "/server/libjvm.so")
1909 (string-append lib-graal "/libjvm.so")))))))))))
1870 1910
1871;;; Convenience alias to point to the latest version of OpenJDK. 1911;;; Convenience alias to point to the latest version of OpenJDK.
1872(define-public openjdk openjdk25) 1912(define-public openjdk openjdk25)
1873 1913
1914
1874 1915
1875;; This version of JBR is here in order to be able to build custom 1916;; This version of JBR is here in order to be able to build custom
1876;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for 1917;; IntelliJ plugins. Those usually need both jbr11 and jbr17 for
@@ -2654,16 +2695,16 @@ debugging, etc.")
2654(define-public javacc 2695(define-public javacc
2655 (package 2696 (package
2656 (inherit javacc-4) 2697 (inherit javacc-4)
2657 (version "7.0.4") 2698 (version "7.0.13")
2658 (source 2699 (source
2659 (origin 2700 (origin
2660 (method git-fetch) 2701 (method git-fetch)
2661 (uri (git-reference 2702 (uri (git-reference
2662 (url "https://github.com/javacc/javacc") 2703 (url "https://github.com/javacc/javacc")
2663 (commit version))) 2704 (commit (string-append "javacc-" version))))
2664 (file-name (git-file-name "javacc" version)) 2705 (file-name (git-file-name "javacc" version))
2665 (sha256 2706 (sha256
2666 (base32 "18kkak3gda93gr25jrgy6q00g0jr8i24ri2wk4kybz1v234fxx9i")) 2707 (base32 "0mwbgqk41471iqsa9q2zydyw7l76xnmndyzrpp9nswy9hql6yclw"))
2667 (modules '((guix build utils))) 2708 (modules '((guix build utils)))
2668 ;; Delete bundled jars. 2709 ;; Delete bundled jars.
2669 (snippet '(begin (for-each delete-file-recursively 2710 (snippet '(begin (for-each delete-file-recursively
@@ -3412,29 +3453,30 @@ class/interface/method definitions from source files complete with JavaDoc
3412documentation tools.") 3453documentation tools.")
3413 (license license:asl2.0))) 3454 (license license:asl2.0)))
3414 3455
3415(define-public java-qdox-2-M9 3456(define-public java-qdox-2
3416 (package 3457 (package
3417 (inherit java-qdox) 3458 (inherit java-qdox)
3418 (version "2.0-M9"); required by plexus-java 3459 (name "java-qdox-2")
3460 (version "2.2.0")
3419 (source (origin 3461 (source (origin
3420 (method url-fetch) 3462 (method url-fetch)
3421 ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
3422 ;; Older releases at https://github.com/codehaus/qdox/
3423 ;; Note: The release at maven is pre-generated. The release at
3424 ;; github requires jflex.
3425 (uri (string-append "https://repo1.maven.org/maven2/" 3463 (uri (string-append "https://repo1.maven.org/maven2/"
3426 "com/thoughtworks/qdox/qdox/" version 3464 "com/thoughtworks/qdox/qdox/" version
3427 "/qdox-" version "-sources.jar")) 3465 "/qdox-" version "-sources.jar"))
3428 (sha256 3466 (sha256
3429 (base32 3467 (base32
3430 "1s2jnmx2dkwnaha12lcj26aynywgwa8sslc47z82wx8xai13y4fg")))) 3468 "1j3xdbh590x2yiqqrrbf0bb43djyzjzjibqxfnj80341fgfhcj31"))))
3431 (arguments 3469 (arguments
3432 (substitute-keyword-arguments (package-arguments java-qdox) 3470 `(#:jar-name "qdox.jar"
3433 ((#:phases phases) 3471 #:jdk ,openjdk11
3434 `(modify-phases ,phases 3472 #:tests? #f
3435 (replace 'create-pom 3473 #:phases
3436 (generate-pom.xml "pom.xml" "com.thoughtworks.qdox" "qdox" ,version 3474 (modify-phases %standard-phases
3437 #:name "QDox")))))))) 3475 (add-before 'install 'create-pom
3476 (generate-pom.xml "pom.xml" "com.thoughtworks.qdox" "qdox" ,version
3477 #:name "QDox"))
3478 (replace 'install
3479 (install-from-pom "pom.xml")))))))
3438 3480
3439(define-public java-jarjar 3481(define-public java-jarjar
3440 (package 3482 (package
@@ -3729,10 +3771,47 @@ sharing common test data, and test runners for running tests.")
3729provides much easier and readable parametrised tests for JUnit.") 3771provides much easier and readable parametrised tests for JUnit.")
3730 (license license:asl2.0))) 3772 (license license:asl2.0)))
3731 3773
3774;; JUnit BOM (Bill of Materials) for dependency version management
3775(define (make-junit-bom version hash)
3776 (package
3777 (name "junit-bom")
3778 (version version)
3779 (source (origin
3780 (method url-fetch)
3781 (uri (string-append
3782 "https://repo1.maven.org/maven2/org/junit/junit-bom/"
3783 version "/junit-bom-" version ".pom"))
3784 (sha256 (base32 hash))))
3785 (build-system ant-build-system)
3786 (arguments
3787 `(#:tests? #f
3788 #:phases
3789 (modify-phases %standard-phases
3790 (delete 'configure)
3791 (delete 'build)
3792 (replace 'install
3793 (lambda* (#:key source outputs #:allow-other-keys)
3794 (let* ((out (assoc-ref outputs "out"))
3795 (pom-dir (string-append out "/lib/m2/org/junit/junit-bom/"
3796 ,version)))
3797 (mkdir-p pom-dir)
3798 (copy-file source (string-append pom-dir "/junit-bom-" ,version ".pom"))))))))
3799 (home-page "https://junit.org/junit5/")
3800 (synopsis "JUnit 5 Bill of Materials")
3801 (description "This package provides a Maven BOM (Bill of Materials) for
3802JUnit 5, used for dependency version management.")
3803 (license license:epl2.0)))
3804
3805(define-public junit-bom-5.11
3806 (make-junit-bom "5.11.4" "05a1br7lqpisb5gcphaag8kn4rcqdwlm6i9knqjm7004n93vgm0r"))
3807
3808(define-public junit-bom-5.11.0
3809 (make-junit-bom "5.11.0" "0kb4whmjm4xyh0n0gfj0nd38ks52yk4b23glfiisq914i3a5jx76"))
3810
3732(define-public java-plexus-utils 3811(define-public java-plexus-utils
3733 (package 3812 (package
3734 (name "java-plexus-utils") 3813 (name "java-plexus-utils")
3735 (version "3.3.0") 3814 (version "3.5.1")
3736 (source (origin 3815 (source (origin
3737 (method git-fetch) 3816 (method git-fetch)
3738 (uri (git-reference 3817 (uri (git-reference
@@ -3741,13 +3820,16 @@ provides much easier and readable parametrised tests for JUnit.")
3741 (file-name (git-file-name name version)) 3820 (file-name (git-file-name name version))
3742 (sha256 3821 (sha256
3743 (base32 3822 (base32
3744 "0d0fq21rzjy0j55kcp8w9k1rbq9rwr0r7cc8239p9jbz54vihp0g")))) 3823 "0zm0svaffdkjqkj778zicxvij87hkbi9hhidx0343dqalikdsmqq"))))
3745 (build-system ant-build-system) 3824 (build-system ant-build-system)
3746 ;; FIXME: The default build.xml does not include a target to install 3825 ;; FIXME: The default build.xml does not include a target to install
3747 ;; javadoc files. 3826 ;; javadoc files.
3748 (arguments 3827 (arguments
3749 `(#:jar-name "plexus-utils.jar" 3828 `(#:jar-name "plexus-utils.jar"
3750 #:source-dir "src/main" 3829 ;; 3.5.x has multi-release JAR structure with java9/java10/java11 dirs
3830 ;; under src/main/ containing duplicate classes for newer JVMs.
3831 ;; Use src/main/java to compile only the base implementation.
3832 #:source-dir "src/main/java"
3751 #:phases 3833 #:phases
3752 (modify-phases %standard-phases 3834 (modify-phases %standard-phases
3753 (add-after 'unpack 'fix-reference-to-/bin-and-/usr 3835 (add-after 'unpack 'fix-reference-to-/bin-and-/usr
@@ -3784,7 +3866,7 @@ cli/shell/BourneShell.java"
3784 (native-inputs 3866 (native-inputs
3785 (list java-hamcrest-core java-junit)) 3867 (list java-hamcrest-core java-junit))
3786 (propagated-inputs 3868 (propagated-inputs
3787 (list plexus-parent-pom-5.1)) 3869 (list plexus-parent-pom-10))
3788 (home-page "https://codehaus-plexus.github.io/plexus-utils/") 3870 (home-page "https://codehaus-plexus.github.io/plexus-utils/")
3789 (synopsis "Common utilities for the Plexus framework") 3871 (synopsis "Common utilities for the Plexus framework")
3790 (description "This package provides various Java utility classes for the 3872 (description "This package provides various Java utility classes for the
@@ -3807,6 +3889,57 @@ more.")
3807 (base32 3889 (base32
3808 "1w169glixyk94jbczj8jzg897lsab46jihiaa3dhw0p06g35va8b")))))) 3890 "1w169glixyk94jbczj8jzg897lsab46jihiaa3dhw0p06g35va8b"))))))
3809 3891
3892(define-public java-plexus-xml
3893 (package
3894 (name "java-plexus-xml")
3895 (version "3.0.1")
3896 (source (origin
3897 (method git-fetch)
3898 (uri (git-reference
3899 (url "https://github.com/codehaus-plexus/plexus-xml")
3900 (commit (string-append "plexus-xml-" version))))
3901 (file-name (git-file-name name version))
3902 (sha256
3903 (base32
3904 "0agwjmzqay7zg4wf2g7lf3gryl9hivr2cb89k0wvjx49r4rdrnhr"))))
3905 (build-system ant-build-system)
3906 (arguments
3907 `(#:jar-name "plexus-xml.jar"
3908 #:source-dir "src/main/java"
3909 #:tests? #f
3910 #:phases
3911 (modify-phases %standard-phases
3912 (replace 'install (install-from-pom "pom.xml")))))
3913 (propagated-inputs
3914 (list plexus-parent-pom-20))
3915 (home-page "https://codehaus-plexus.github.io/plexus-xml/")
3916 (synopsis "Plexus XML utilities")
3917 (description "Plexus XML provides XML parsing and writing utilities.")
3918 (license license:asl2.0)))
3919
3920(define-public java-plexus-utils-4
3921 (package
3922 (inherit java-plexus-utils)
3923 (version "4.0.1")
3924 (source (origin
3925 (method git-fetch)
3926 (uri (git-reference
3927 (url "https://github.com/codehaus-plexus/plexus-utils")
3928 (commit (string-append "plexus-utils-" version))))
3929 (file-name (git-file-name "java-plexus-utils" version))
3930 (sha256
3931 (base32
3932 "1prhjyrj985zgis89il5s91jgd3dr980dihl7zam1nda2ibl0mi9"))))
3933 (arguments
3934 (substitute-keyword-arguments (package-arguments java-plexus-utils)
3935 ;; Tests require JUnit 5 (Jupiter) which is not yet available.
3936 ((#:tests? _ #f)
3937 #f)))
3938 ;; In 4.x, the XML utilities (XmlStreamReader, XmlStreamWriter) were split
3939 ;; out into the separate plexus-xml package.
3940 (inputs
3941 (list java-plexus-xml))))
3942
3810(define-public java-plexus-interpolation 3943(define-public java-plexus-interpolation
3811 (package 3944 (package
3812 (name "java-plexus-interpolation") 3945 (name "java-plexus-interpolation")
@@ -3842,6 +3975,39 @@ package within @code{plexus-utils}, but has been separated in order to allow
3842these two libraries to vary independently of one another.") 3975these two libraries to vary independently of one another.")
3843 (license license:asl2.0))) 3976 (license license:asl2.0)))
3844 3977
3978(define-public java-jtidy
3979 (package
3980 (name "java-jtidy")
3981 (version "1.0.5")
3982 (source (origin
3983 (method git-fetch)
3984 (uri (git-reference
3985 (url "https://github.com/jtidy/jtidy")
3986 (commit (string-append "jtidy-" version))))
3987 (file-name (git-file-name name version))
3988 (sha256
3989 (base32
3990 "1i4jcg0ps2wmssk1p6yp9cd6di49pw2j30kplakvy1bnp3x7j4pp"))))
3991 (build-system ant-build-system)
3992 (arguments
3993 `(#:jar-name "jtidy.jar"
3994 #:source-dir "src/main/java"
3995 #:tests? #f
3996 #:phases
3997 (modify-phases %standard-phases
3998 (add-before 'install 'generate-pom
3999 (generate-pom.xml "pom.xml" "net.sf.jtidy" "jtidy" ,version))
4000 (replace 'install
4001 (install-from-pom "pom.xml")))))
4002 (home-page "https://jtidy.sourceforge.net/")
4003 (synopsis "Java port of HTML Tidy")
4004 (description "JTidy is a Java port of HTML Tidy, a HTML syntax checker
4005and pretty printer. Like its non-Java cousin, JTidy can be used as a tool
4006for cleaning up malformed and faulty HTML. In addition, JTidy provides a
4007DOM interface to the document that is being processed, which effectively
4008makes you able to use JTidy as a DOM parser for real-world HTML.")
4009 (license license:bsd-3)))
4010
3845(define-public java-plexus-classworlds 4011(define-public java-plexus-classworlds
3846 (package 4012 (package
3847 (name "java-plexus-classworlds") 4013 (name "java-plexus-classworlds")
@@ -3939,10 +4105,64 @@ implementation.")
3939 (propagated-inputs 4105 (propagated-inputs
3940 `(("plexus-parent-pom" ,plexus-parent-pom-4.0))))) 4106 `(("plexus-parent-pom" ,plexus-parent-pom-4.0)))))
3941 4107
4108(define-public java-aircompressor
4109 (package
4110 (name "java-aircompressor")
4111 (version "0.27")
4112 (source (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/airlift/aircompressor")
4116 (commit version)))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32
4120 "061v9mfazig0350j8326mn0awgzfyk9dcg6jprqah9ajjfps9dry"))
4121 (patches
4122 (search-patches "java-aircompressor-remove-hadoop.patch"))
4123 (modules '((guix build utils)))
4124 (snippet
4125 '(begin
4126 ;; Remove Hadoop-related Java files
4127 (delete-file-recursively
4128 "src/main/java/io/airlift/compress/hadoop")
4129 (for-each delete-file
4130 (find-files "src/main/java" ".*Hadoop.*\\.java$"))
4131 (for-each delete-file
4132 (find-files "src/main/java" ".*Codec\\.java$"))))))
4133 (build-system ant-build-system)
4134 (arguments
4135 `(#:jar-name "aircompressor.jar"
4136 #:source-dir "src/main/java"
4137 #:tests? #f
4138 #:phases
4139 (modify-phases %standard-phases
4140 (add-before 'install 'generate-simple-pom
4141 (lambda _
4142 ;; Generate a simple pom without parent, since airbase:112 is not available.
4143 (with-output-to-file "pom.xml"
4144 (lambda ()
4145 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
4146<project>
4147 <modelVersion>4.0.0</modelVersion>
4148 <groupId>io.airlift</groupId>
4149 <artifactId>aircompressor</artifactId>
4150 <version>0.27</version>
4151 <packaging>jar</packaging>
4152 <name>aircompressor</name>
4153</project>
4154")))))
4155 (replace 'install (install-from-pom "pom.xml")))))
4156 (home-page "https://github.com/airlift/aircompressor")
4157 (synopsis "Java compression library")
4158 (description "Aircompressor is a Java library with ports of LZ4, Snappy,
4159LZO, and Zstandard compression algorithms.")
4160 (license license:asl2.0)))
4161
3942(define-public java-plexus-io 4162(define-public java-plexus-io
3943 (package 4163 (package
3944 (name "java-plexus-io") 4164 (name "java-plexus-io")
3945 (version "3.2.0") 4165 (version "3.6.0")
3946 (source (origin 4166 (source (origin
3947 (method git-fetch) 4167 (method git-fetch)
3948 (uri (git-reference 4168 (uri (git-reference
@@ -3951,33 +4171,24 @@ implementation.")
3951 (file-name (git-file-name name version)) 4171 (file-name (git-file-name name version))
3952 (sha256 4172 (sha256
3953 (base32 4173 (base32
3954 "1r3wqfpbxq8vp4p914i8p88r0994rmcjw02hz14n11cfb6gsyvlr")))) 4174 "0ln51s9a6wjvkkh4q05g69422856qng467fyvbh39x27i0vhcyb0"))))
3955 (build-system ant-build-system) 4175 (build-system ant-build-system)
3956 (arguments 4176 (arguments
3957 `(#:jar-name "plexus-io.jar" 4177 `(#:jar-name "plexus-io.jar"
3958 #:source-dir "src/main/java" 4178 #:source-dir "src/main/java"
3959 #:test-dir "src/test" 4179 #:tests? #f
3960 #:phases 4180 #:phases
3961 (modify-phases %standard-phases 4181 (modify-phases %standard-phases
3962 (add-before 'build 'copy-resources 4182 (add-before 'build 'copy-resources
3963 (lambda _ 4183 (lambda _
3964 (mkdir-p "build/classes") 4184 (mkdir-p "build/classes")
3965 (copy-recursively "src/main/resources" "build/classes") 4185 (copy-recursively "src/main/resources" "build/classes")
3966 (mkdir-p "build/test-classes")
3967 (copy-recursively "src/test/resources" "build/test-classes")
3968 #t)) 4186 #t))
3969 (replace 'install (install-from-pom "pom.xml"))))) 4187 (replace 'install (install-from-pom "pom.xml")))))
3970 (propagated-inputs 4188 (propagated-inputs
3971 (list java-plexus-utils java-commons-io plexus-parent-pom-5.1)) 4189 (list java-plexus-utils java-commons-io java-slf4j-api java-javax-inject))
3972 (inputs 4190 (inputs
3973 (list java-jsr305)) 4191 (list java-jsr305))
3974 (native-inputs
3975 `(("junit" ,java-junit)
3976 ("hamcrest" ,java-hamcrest-core)
3977 ("guava" ,java-guava)
3978 ("classworlds" ,java-plexus-classworlds)
3979 ("xbean" ,java-geronimo-xbean-reflect)
3980 ("container-default" ,java-plexus-container-default-bootstrap)))
3981 (home-page "https://github.com/codehaus-plexus/plexus-io") 4192 (home-page "https://github.com/codehaus-plexus/plexus-io")
3982 (synopsis "I/O plexus components") 4193 (synopsis "I/O plexus components")
3983 (description "Plexus IO is a set of plexus components, which are designed 4194 (description "Plexus IO is a set of plexus components, which are designed
@@ -3988,55 +4199,129 @@ reusing it in maven.")
3988(define-public java-plexus-archiver 4199(define-public java-plexus-archiver
3989 (package 4200 (package
3990 (name "java-plexus-archiver") 4201 (name "java-plexus-archiver")
3991 (version "4.2.2") 4202 (version "4.10.4")
3992 (source (origin 4203 (source (origin
3993 (method url-fetch) 4204 (method git-fetch)
3994 (uri (string-append "https://github.com/codehaus-plexus/plexus-archiver" 4205 (uri (git-reference
3995 "/archive/plexus-archiver-" version ".tar.gz")) 4206 (url "https://github.com/codehaus-plexus/plexus-archiver")
4207 (commit (string-append "plexus-archiver-" version))))
4208 (file-name (git-file-name name version))
3996 (sha256 4209 (sha256
3997 (base32 4210 (base32
3998 "144n971r3lfrx3l12nf2scm80x4xdvgbkk4bjpa4vcvvdrll6qys")))) 4211 "0azdfcp5fbah8wqxdgs2rmyn0v8a5jciikw5ai4m9d2s92w0ypz4"))
4212 (patches
4213 (search-patches "java-plexus-archiver-add-components-xml.patch"))))
3999 (build-system ant-build-system) 4214 (build-system ant-build-system)
4000 (arguments 4215 (arguments
4001 `(#:jar-name "plexus-archiver.jar" 4216 `(#:jar-name "plexus-archiver.jar"
4002 #:source-dir "src/main/java" 4217 #:source-dir "src/main/java"
4003 #:test-dir "src/test" 4218 #:tests? #f
4004 #:test-exclude (list "**/Abstract*.java" "**/Base*.java")
4005 #:phases 4219 #:phases
4006 (modify-phases %standard-phases 4220 (modify-phases %standard-phases
4007 (add-before 'check 'remove-failing
4008 (lambda _
4009 ;; Requires an older version of plexus container
4010 (delete-file
4011 "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")
4012 #t))
4013 (add-before 'check 'fix-test-building
4014 (lambda _
4015 (substitute* "build.xml"
4016 (("srcdir=\"src/test\"") "srcdir=\"src/test/java\""))
4017 #t))
4018 (add-before 'build 'copy-resources 4221 (add-before 'build 'copy-resources
4019 (lambda _ 4222 (lambda _
4020 (mkdir-p "build/classes") 4223 (mkdir-p "build/classes")
4021 (copy-recursively "src/main/resources" "build/classes") 4224 (copy-recursively "src/main/resources" "build/classes")
4022 (mkdir-p "build/test-classes")
4023 (copy-recursively "src/test/resources" "build/test-classes")
4024 #t)) 4225 #t))
4226 (add-after 'copy-resources 'create-sisu-index
4227 ;; The sisu index file is normally generated by the sisu-maven-plugin
4228 ;; during the Maven build. Since we use ant-build-system, we need to
4229 ;; create it manually. This index is required for Plexus/Sisu to
4230 ;; discover and inject the archiver components.
4231 (lambda _
4232 (mkdir-p "build/classes/META-INF/sisu")
4233 (call-with-output-file "build/classes/META-INF/sisu/javax.inject.Named"
4234 (lambda (port)
4235 (display "org.codehaus.plexus.archiver.bzip2.BZip2Archiver
4236org.codehaus.plexus.archiver.bzip2.BZip2UnArchiver
4237org.codehaus.plexus.archiver.bzip2.PlexusIoBz2ResourceCollection
4238org.codehaus.plexus.archiver.bzip2.PlexusIoBzip2ResourceCollection
4239org.codehaus.plexus.archiver.car.CarUnArchiver
4240org.codehaus.plexus.archiver.car.PlexusIoCarFileResourceCollection
4241org.codehaus.plexus.archiver.dir.DirectoryArchiver
4242org.codehaus.plexus.archiver.ear.EarArchiver
4243org.codehaus.plexus.archiver.ear.EarUnArchiver
4244org.codehaus.plexus.archiver.ear.PlexusIoEarFileResourceCollection
4245org.codehaus.plexus.archiver.esb.EsbUnArchiver
4246org.codehaus.plexus.archiver.esb.PlexusIoEsbFileResourceCollection
4247org.codehaus.plexus.archiver.filters.JarSecurityFileSelector
4248org.codehaus.plexus.archiver.gzip.GZipArchiver
4249org.codehaus.plexus.archiver.gzip.GZipUnArchiver
4250org.codehaus.plexus.archiver.gzip.PlexusIoGzResourceCollection
4251org.codehaus.plexus.archiver.gzip.PlexusIoGzipResourceCollection
4252org.codehaus.plexus.archiver.jar.JarArchiver
4253org.codehaus.plexus.archiver.jar.JarToolModularJarArchiver
4254org.codehaus.plexus.archiver.jar.JarUnArchiver
4255org.codehaus.plexus.archiver.jar.PlexusIoJarFileResourceCollection
4256org.codehaus.plexus.archiver.manager.DefaultArchiverManager
4257org.codehaus.plexus.archiver.nar.NarUnArchiver
4258org.codehaus.plexus.archiver.nar.PlexusIoNarFileResourceCollection
4259org.codehaus.plexus.archiver.par.ParUnArchiver
4260org.codehaus.plexus.archiver.par.PlexusIoJarFileResourceCollection
4261org.codehaus.plexus.archiver.rar.PlexusIoRarFileResourceCollection
4262org.codehaus.plexus.archiver.rar.RarArchiver
4263org.codehaus.plexus.archiver.rar.RarUnArchiver
4264org.codehaus.plexus.archiver.sar.PlexusIoSarFileResourceCollection
4265org.codehaus.plexus.archiver.sar.SarUnArchiver
4266org.codehaus.plexus.archiver.snappy.PlexusIoSnappyResourceCollection
4267org.codehaus.plexus.archiver.snappy.SnappyArchiver
4268org.codehaus.plexus.archiver.snappy.SnappyUnArchiver
4269org.codehaus.plexus.archiver.swc.PlexusIoSwcFileResourceCollection
4270org.codehaus.plexus.archiver.swc.SwcUnArchiver
4271org.codehaus.plexus.archiver.tar.PlexusIoTBZ2FileResourceCollection
4272org.codehaus.plexus.archiver.tar.PlexusIoTGZFileResourceCollection
4273org.codehaus.plexus.archiver.tar.PlexusIoTXZFileResourceCollection
4274org.codehaus.plexus.archiver.tar.PlexusIoTZstdFileResourceCollection
4275org.codehaus.plexus.archiver.tar.PlexusIoTarBZip2FileResourceCollection
4276org.codehaus.plexus.archiver.tar.PlexusIoTarFileResourceCollection
4277org.codehaus.plexus.archiver.tar.PlexusIoTarGZipFileResourceCollection
4278org.codehaus.plexus.archiver.tar.PlexusIoTarSnappyFileResourceCollection
4279org.codehaus.plexus.archiver.tar.PlexusIoTarXZFileResourceCollection
4280org.codehaus.plexus.archiver.tar.PlexusIoTarZstdFileResourceCollection
4281org.codehaus.plexus.archiver.tar.TBZ2Archiver
4282org.codehaus.plexus.archiver.tar.TBZ2UnArchiver
4283org.codehaus.plexus.archiver.tar.TGZArchiver
4284org.codehaus.plexus.archiver.tar.TGZUnArchiver
4285org.codehaus.plexus.archiver.tar.TXZArchiver
4286org.codehaus.plexus.archiver.tar.TXZUnArchiver
4287org.codehaus.plexus.archiver.tar.TZstdArchiver
4288org.codehaus.plexus.archiver.tar.TZstdUnArchiver
4289org.codehaus.plexus.archiver.tar.TarArchiver
4290org.codehaus.plexus.archiver.tar.TarBZip2Archiver
4291org.codehaus.plexus.archiver.tar.TarBZip2UnArchiver
4292org.codehaus.plexus.archiver.tar.TarGZipArchiver
4293org.codehaus.plexus.archiver.tar.TarGZipUnArchiver
4294org.codehaus.plexus.archiver.tar.TarSnappyArchiver
4295org.codehaus.plexus.archiver.tar.TarSnappyUnArchiver
4296org.codehaus.plexus.archiver.tar.TarUnArchiver
4297org.codehaus.plexus.archiver.tar.TarXZArchiver
4298org.codehaus.plexus.archiver.tar.TarXZUnArchiver
4299org.codehaus.plexus.archiver.tar.TarZstdArchiver
4300org.codehaus.plexus.archiver.tar.TarZstdUnArchiver
4301org.codehaus.plexus.archiver.war.PlexusIoWarFileResourceCollection
4302org.codehaus.plexus.archiver.war.WarArchiver
4303org.codehaus.plexus.archiver.war.WarUnArchiver
4304org.codehaus.plexus.archiver.xz.PlexusIoXZResourceCollection
4305org.codehaus.plexus.archiver.xz.XZArchiver
4306org.codehaus.plexus.archiver.xz.XZUnArchiver
4307org.codehaus.plexus.archiver.zip.PlexusArchiverZipFileResourceCollection
4308org.codehaus.plexus.archiver.zip.ZipArchiver
4309org.codehaus.plexus.archiver.zip.ZipUnArchiver
4310org.codehaus.plexus.archiver.zstd.PlexusIoZstdResourceCollection
4311org.codehaus.plexus.archiver.zstd.ZstdArchiver
4312org.codehaus.plexus.archiver.zstd.ZstdUnArchiver
4313" port)))))
4025 (replace 'install (install-from-pom "pom.xml"))))) 4314 (replace 'install (install-from-pom "pom.xml")))))
4026 (propagated-inputs 4315 (propagated-inputs
4027 (list java-plexus-utils java-plexus-io java-iq80-snappy 4316 (list java-plexus-utils
4028 java-commons-compress plexus-parent-pom-6.1)) 4317 java-plexus-io
4318 java-commons-compress
4319 java-aircompressor
4320 java-slf4j-api
4321 java-xz
4322 java-javax-inject))
4029 (inputs 4323 (inputs
4030 `(("java-jsr305" ,java-jsr305) 4324 (list java-jsr305))
4031 ("java-plexus-container-default"
4032 ,java-plexus-container-default-bootstrap)))
4033 (native-inputs
4034 `(("java-hamcrest-core" ,java-hamcrest-core)
4035 ("junit" ,java-junit)
4036 ("classworld" ,java-plexus-classworlds)
4037 ("xbean" ,java-geronimo-xbean-reflect)
4038 ("xz" ,java-xz)
4039 ("guava" ,java-guava)))
4040 (home-page "https://github.com/codehaus-plexus/plexus-archiver") 4325 (home-page "https://github.com/codehaus-plexus/plexus-archiver")
4041 (synopsis "Archiver component of the Plexus project") 4326 (synopsis "Archiver component of the Plexus project")
4042 (description "Plexus-archiver contains a component to deal with project 4327 (description "Plexus-archiver contains a component to deal with project
@@ -4051,6 +4336,7 @@ archives (jar).")
4051 `(#:jar-name "container-default.jar" 4336 `(#:jar-name "container-default.jar"
4052 #:source-dir "plexus-container-default/src/main/java" 4337 #:source-dir "plexus-container-default/src/main/java"
4053 #:test-dir "plexus-container-default/src/test" 4338 #:test-dir "plexus-container-default/src/test"
4339 #:tests? #f ;tests use ArchiverManager.ROLE removed in java-plexus-archiver 4.10
4054 #:test-exclude (list ;"**/*Test.java" 4340 #:test-exclude (list ;"**/*Test.java"
4055 "**/Abstract*.java" 4341 "**/Abstract*.java"
4056 ;; Requires plexus-hierarchy 4342 ;; Requires plexus-hierarchy
@@ -4174,7 +4460,9 @@ public class PlexusMetadataGeneratorCli
4174 public static void main( String[] args ) 4460 public static void main( String[] args )
4175 throws Exception 4461 throws Exception
4176 { 4462 {
4177 new PlexusMetadataGeneratorCli().execute( args ); 4463 // Call System.exit() with execute()'s return code so errors
4464 // actually cause the process to exit with non-zero status.
4465 System.exit(new PlexusMetadataGeneratorCli().execute( args ));
4178 } 4466 }
4179 4467
4180 @Override 4468 @Override
@@ -4218,21 +4506,23 @@ public class PlexusMetadataGeneratorCli
4218 "src/test/java/org/codehaus/plexus/metadata/merge/ComponentsXmlMergerTest.java") 4506 "src/test/java/org/codehaus/plexus/metadata/merge/ComponentsXmlMergerTest.java")
4219 (("target") "build"))))))) 4507 (("target") "build")))))))
4220 (propagated-inputs 4508 (propagated-inputs
4221 `(("java-plexus-container-default" ,java-plexus-container-default) 4509 (list java-plexus-container-default
4222 ("java-plexu-component-annotations" ,java-plexus-component-annotations) 4510 java-plexus-component-annotations
4223 ("java-plexus-utils" ,java-plexus-utils) 4511 java-plexus-utils
4224 ("java-plexus-cli" ,java-plexus-cli) 4512 java-plexus-cli
4225 ("java-plexus-classworlds" ,java-plexus-classworlds) 4513 java-plexus-classworlds
4226 ("maven-plugin-api" ,maven-plugin-api) 4514 java-commons-cli
4227 ("maven-plugin-annotations" ,maven-plugin-annotations) 4515 java-qdox
4228 ("maven-core-bootstrap" ,maven-core-bootstrap) 4516 java-jdom2
4229 ("maven-model" ,maven-model) 4517 java-asm-8
4230 ("java-commons-cli" ,java-commons-cli) 4518 maven-plugin-api
4231 ("java-qdox" ,java-qdox) 4519 maven-plugin-annotations
4232 ("java-jdom2" ,java-jdom2) 4520 maven-model))
4233 ("java-asm-8" ,java-asm-8)))
4234 (native-inputs 4521 (native-inputs
4235 (list java-junit java-guava java-geronimo-xbean-reflect)) 4522 (list maven-core-bootstrap
4523 java-junit
4524 java-guava
4525 java-geronimo-xbean-reflect))
4236 (synopsis "Inversion-of-control container for Maven") 4526 (synopsis "Inversion-of-control container for Maven")
4237 (description "The Plexus project provides a full software stack for creating 4527 (description "The Plexus project provides a full software stack for creating
4238and executing software projects. Based on the Plexus container, the 4528and executing software projects. Based on the Plexus container, the
@@ -4252,7 +4542,11 @@ provides the Maven plugin generating the component metadata.")))
4252 (file-name (git-file-name "java-plexus-container-default" version)) 4542 (file-name (git-file-name "java-plexus-container-default" version))
4253 (sha256 4543 (sha256
4254 (base32 4544 (base32
4255 "1316hrp5vqfv0aw7miq2fp0wwy833h66h502h29vnh5sxj27x228")))))) 4545 "1316hrp5vqfv0aw7miq2fp0wwy833h66h502h29vnh5sxj27x228"))))
4546 (arguments
4547 (substitute-keyword-arguments
4548 (package-arguments java-plexus-container-default)
4549 ((#:tests? _ #t) #f)))))
4256 4550
4257(define java-plexus-containers-parent-pom-1.7 4551(define java-plexus-containers-parent-pom-1.7
4258 (package 4552 (package
@@ -4417,10 +4711,13 @@ and decryption.")
4417 (add-before 'install 'fix-test-dependency 4711 (add-before 'install 'fix-test-dependency
4418 (lambda _ 4712 (lambda _
4419 ;; sisu-inject-bean is only used for tests, but its scope is "provided". 4713 ;; sisu-inject-bean is only used for tests, but its scope is "provided".
4714 ;; FIXME: Liar.
4420 (substitute* "pom.xml" 4715 (substitute* "pom.xml"
4421 (("provided") "test")) 4716 (("provided")
4717 "test"))
4422 #t)) 4718 #t))
4423 (replace 'install (install-from-pom "pom.xml"))))) 4719 (replace 'install
4720 (install-from-pom "pom.xml")))))
4424 (propagated-inputs 4721 (propagated-inputs
4425 (list java-sonatype-spice-parent-pom-15)))) 4722 (list java-sonatype-spice-parent-pom-15))))
4426 4723
@@ -4445,6 +4742,7 @@ and decryption.")
4445 (build-system ant-build-system) 4742 (build-system ant-build-system)
4446 (arguments 4743 (arguments
4447 `(#:jar-name "plexus-java.java" 4744 `(#:jar-name "plexus-java.java"
4745 #:jdk ,openjdk11
4448 #:source-dir "plexus-java/src/main/java" 4746 #:source-dir "plexus-java/src/main/java"
4449 #:test-dir "plexus-java/src/test" 4747 #:test-dir "plexus-java/src/test"
4450 #:tests? #f; require mockito 2 4748 #:tests? #f; require mockito 2
@@ -4465,7 +4763,7 @@ and decryption.")
4465 (replace 'install 4763 (replace 'install
4466 (install-from-pom "plexus-java/pom.xml"))))) 4764 (install-from-pom "plexus-java/pom.xml")))))
4467 (propagated-inputs 4765 (propagated-inputs
4468 (list java-asm java-qdox-2-M9 java-javax-inject 4766 (list java-asm java-qdox-2 java-javax-inject
4469 plexus-parent-pom-4.0)) 4767 plexus-parent-pom-4.0))
4470 (inputs 4768 (inputs
4471 (list java-plexus-component-annotations-1.7)) 4769 (list java-plexus-component-annotations-1.7))
@@ -4477,6 +4775,41 @@ and decryption.")
4477language, for the plexus project.") 4775language, for the plexus project.")
4478 (license license:asl2.0))) 4776 (license license:asl2.0)))
4479 4777
4778(define-public java-plexus-java-1
4779 (package
4780 (inherit java-plexus-java)
4781 (version "1.4.0")
4782 (source (origin
4783 (method git-fetch)
4784 (uri (git-reference
4785 (url "https://github.com/codehaus-plexus/plexus-languages")
4786 (commit (string-append "plexus-languages-" version))))
4787 (file-name (git-file-name "java-plexus-java" version))
4788 (sha256
4789 (base32 "0xlhg4bz3dzakv8indfgl1k5dl5xll9h190rlyk9v1ghdzzz1iw2"))
4790 (modules '((guix build utils)))
4791 (snippet
4792 '(for-each delete-file (find-files "." "\\.jar$")))))
4793 (arguments
4794 (substitute-keyword-arguments (package-arguments java-plexus-java)
4795 ((#:phases phases)
4796 `(modify-phases ,phases
4797 ;; Replace the plexus metadata generation with Sisu index generation
4798 (replace 'generate-metadata
4799 (lambda _
4800 ;; Generate Sisu index for @Named components
4801 (mkdir-p "build/classes/META-INF/sisu")
4802 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
4803 (lambda _
4804 (display "org.codehaus.plexus.languages.java.jpms.LocationManager\n")))
4805 (invoke "ant" "jar")))))))
4806 (propagated-inputs
4807 (list java-asm-9 java-qdox-2 java-javax-inject
4808 plexus-parent-pom-15))
4809 (native-inputs
4810 (modify-inputs (package-native-inputs java-plexus-java)
4811 (append java-eclipse-sisu-inject)))))
4812
4480(define-public java-plexus-compiler-api 4813(define-public java-plexus-compiler-api
4481 (package 4814 (package
4482 (name "java-plexus-compiler-api") 4815 (name "java-plexus-compiler-api")
@@ -4669,6 +5002,36 @@ Compiler component.")))
4669packages.") 5002packages.")
4670 (license license:asl2.0))) 5003 (license license:asl2.0)))
4671 5004
5005(define-public plexus-components-pom-6.6
5006 (package
5007 (name "plexus-components-pom")
5008 (version "6.6")
5009 (source (origin
5010 (method git-fetch)
5011 (uri (git-reference
5012 (url "https://github.com/codehaus-plexus/plexus-components")
5013 (commit (string-append "plexus-components-" version))))
5014 (file-name (git-file-name name version))
5015 (sha256
5016 (base32
5017 "0vfx6kvvf96zb79y3b6xhm6kppxlmv2i8nz563bymn5jmp0b9d4w"))))
5018 (build-system ant-build-system)
5019 (arguments
5020 `(#:tests? #f
5021 #:phases
5022 (modify-phases %standard-phases
5023 (delete 'configure)
5024 (delete 'build)
5025 (replace 'install
5026 (install-pom-file "pom.xml")))))
5027 (propagated-inputs
5028 (list plexus-parent-pom-8))
5029 (home-page "https://github.com/codehaus-plexus/plexus-components")
5030 (synopsis "Maven parent pom for plexus packages")
5031 (description "This package contains the parent pom for plexus component
5032packages.")
5033 (license license:asl2.0)))
5034
4672(define-public java-plexus-digest 5035(define-public java-plexus-digest
4673 (package 5036 (package
4674 (name "java-plexus-digest") 5037 (name "java-plexus-digest")
@@ -4837,7 +5200,21 @@ This component decrypts a string passed to it.")
4837 `(#:jar-name "plexus-cli.jar" 5200 `(#:jar-name "plexus-cli.jar"
4838 #:source-dir "src/main/java" 5201 #:source-dir "src/main/java"
4839 #:jdk ,icedtea-8 5202 #:jdk ,icedtea-8
4840 #:test-dir "src/test")) 5203 #:test-dir "src/test"
5204 #:phases
5205 (modify-phases %standard-phases
5206 (add-after 'unpack 'fix-error-swallowing
5207 (lambda _
5208 ;; AbstractCli.execute() catches exceptions and calls showFatalError()
5209 ;; or showError(), but ignores any return value and always returns 0.
5210 ;; This silently swallows errors. Fix by returning 1 after errors.
5211 ;; showFatalError returns int, so we can return its value directly.
5212 ;; showError returns void, so we call it then return 1.
5213 (substitute* "src/main/java/org/codehaus/plexus/tools/cli/AbstractCli.java"
5214 (("^([ \t]+)showFatalError\\(" all indent)
5215 (string-append indent "return showFatalError("))
5216 (("^([ \t]+)(showError\\( .* \\);)" all indent call)
5217 (string-append indent call " return 1;"))))))))
4841 (inputs 5218 (inputs
4842 (list java-commons-cli java-plexus-container-default 5219 (list java-commons-cli java-plexus-container-default
4843 java-plexus-classworlds)) 5220 java-plexus-classworlds))
@@ -5309,7 +5686,7 @@ including java-asm.")
5309(define-public java-asm-9 5686(define-public java-asm-9
5310 (package 5687 (package
5311 (inherit java-asm) 5688 (inherit java-asm)
5312 (version "9.4") 5689 (version "9.7.1")
5313 (source (origin 5690 (source (origin
5314 (method git-fetch) 5691 (method git-fetch)
5315 (uri (git-reference 5692 (uri (git-reference
@@ -5320,13 +5697,21 @@ including java-asm.")
5320 (file-name (git-file-name "java-asm" version)) 5697 (file-name (git-file-name "java-asm" version))
5321 (sha256 5698 (sha256
5322 (base32 5699 (base32
5323 "0c00m638skr5md1p6y1c2xn11kj5w6sjapyvwp9mh70rw095bwzk")))) 5700 "0q1i01al9mpggf3256iwmhx9yj9pg52v4vi1gdni2x9jcikq65lf"))))
5324 (arguments 5701 (arguments
5325 `(#:jar-name "asm9.jar" 5702 `(#:jar-name "asm.jar"
5326 #:source-dir "asm/src/main/java" 5703 #:source-dir "asm/src/main/java"
5327 #:test-dir "asm/src/test" 5704 #:test-dir "asm/src/test"
5705 #:jdk ,openjdk11
5328 ;; tests depend on junit5 5706 ;; tests depend on junit5
5329 #:tests? #f)) 5707 #:tests? #f
5708 #:phases
5709 (modify-phases %standard-phases
5710 ;; ASM 9.x uses Gradle, not Maven - generate synthetic pom.xml
5711 (add-before 'install 'generate-pom
5712 (generate-pom.xml "pom.xml" "org.ow2.asm" "asm" ,version))
5713 (replace 'install
5714 (install-from-pom "pom.xml")))))
5330 (propagated-inputs '()) 5715 (propagated-inputs '())
5331 (native-inputs '()))) 5716 (native-inputs '())))
5332 5717
@@ -5338,6 +5723,7 @@ including java-asm.")
5338 `(#:jar-name "asm-tree.jar" 5723 `(#:jar-name "asm-tree.jar"
5339 #:source-dir "asm-tree/src/main/java" 5724 #:source-dir "asm-tree/src/main/java"
5340 #:test-dir "asm-tree/src/test" 5725 #:test-dir "asm-tree/src/test"
5726 #:jdk ,openjdk11
5341 ;; tests depend on junit5 5727 ;; tests depend on junit5
5342 #:tests? #f)) 5728 #:tests? #f))
5343 (inputs 5729 (inputs
@@ -5351,6 +5737,7 @@ including java-asm.")
5351 `(#:jar-name "asm-analysis.jar" 5737 `(#:jar-name "asm-analysis.jar"
5352 #:source-dir "asm-analysis/src/main/java" 5738 #:source-dir "asm-analysis/src/main/java"
5353 #:test-dir "asm-analysis/src/test" 5739 #:test-dir "asm-analysis/src/test"
5740 #:jdk ,openjdk11
5354 ;; tests depend on junit5 5741 ;; tests depend on junit5
5355 #:tests? #f)) 5742 #:tests? #f))
5356 (inputs 5743 (inputs
@@ -5361,11 +5748,19 @@ including java-asm.")
5361 (inherit java-asm-9) 5748 (inherit java-asm-9)
5362 (name "java-asm-util") 5749 (name "java-asm-util")
5363 (arguments 5750 (arguments
5364 `(#:jar-name "asm-util8.jar" 5751 `(#:jar-name "asm-util.jar"
5365 #:source-dir "asm-util/src/main/java" 5752 #:source-dir "asm-util/src/main/java"
5366 #:test-dir "asm-util/src/test" 5753 #:test-dir "asm-util/src/test"
5754 #:jdk ,openjdk11
5367 ;; tests depend on junit5 5755 ;; tests depend on junit5
5368 #:tests? #f)) 5756 #:tests? #f
5757 #:phases
5758 (modify-phases %standard-phases
5759 (add-before 'install 'generate-pom
5760 (generate-pom.xml "pom.xml" "org.ow2.asm" "asm-util"
5761 ,(package-version java-asm-9)))
5762 (replace 'install
5763 (install-from-pom "pom.xml")))))
5369 (inputs 5764 (inputs
5370 (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) 5765 (list java-asm-9 java-asm-analysis-9 java-asm-tree-9))))
5371 5766
@@ -5377,10 +5772,243 @@ including java-asm.")
5377 (list #:jar-name "asm-commons8.jar" 5772 (list #:jar-name "asm-commons8.jar"
5378 #:source-dir "asm-commons/src/main/java" 5773 #:source-dir "asm-commons/src/main/java"
5379 #:test-dir "asm-commons/src/test" 5774 #:test-dir "asm-commons/src/test"
5775 #:jdk openjdk11
5380 ;; tests depend on junit5 5776 ;; tests depend on junit5
5381 #:tests? #f)) 5777 #:tests? #f))
5382 (inputs (list java-asm-9 java-asm-analysis-9 java-asm-tree-9)))) 5778 (inputs (list java-asm-9 java-asm-analysis-9 java-asm-tree-9))))
5383 5779
5780;;; Java packages for GraalVM Truffle (specific versions required)
5781
5782(define-public java-asm-for-graal-truffle
5783 (package
5784 (inherit java-asm-9)
5785 (name "java-asm-for-graal-truffle")
5786 (version "9.7.1")
5787 (source (origin
5788 (method git-fetch)
5789 (uri (git-reference
5790 (url "https://gitlab.ow2.org/asm/asm")
5791 (commit "ASM_9_7_1")))
5792 (file-name (git-file-name name version))
5793 (sha256
5794 (base32
5795 "0q1i01al9mpggf3256iwmhx9yj9pg52v4vi1gdni2x9jcikq65lf"))))
5796 (arguments
5797 `(#:jar-name "asm9.jar"
5798 #:source-dir "asm/src/main/java"
5799 #:test-dir "asm/src/test"
5800 #:tests? #f
5801 #:phases
5802 (modify-phases %standard-phases
5803 (add-after 'build 'create-sources-jar
5804 (lambda _
5805 (invoke "jar" "cf" "build/jar/asm9-sources.jar"
5806 "-C" "asm/src/main/java" ".")))
5807 (add-after 'install 'install-sources-jar
5808 (lambda* (#:key outputs #:allow-other-keys)
5809 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5810 (install-file "build/jar/asm9-sources.jar" share)))))))))
5811
5812(define-public java-asm-tree-for-graal-truffle
5813 (package
5814 (inherit java-asm-tree-9)
5815 (name "java-asm-tree-for-graal-truffle")
5816 (version "9.7.1")
5817 (source (package-source java-asm-for-graal-truffle))
5818 (arguments
5819 `(#:jar-name "asm-tree.jar"
5820 #:source-dir "asm-tree/src/main/java"
5821 #:test-dir "asm-tree/src/test"
5822 #:tests? #f
5823 #:phases
5824 (modify-phases %standard-phases
5825 (add-after 'build 'create-sources-jar
5826 (lambda _
5827 (invoke "jar" "cf" "build/jar/asm-tree-sources.jar"
5828 "-C" "asm-tree/src/main/java" ".")))
5829 (add-after 'install 'install-sources-jar
5830 (lambda* (#:key outputs #:allow-other-keys)
5831 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5832 (install-file "build/jar/asm-tree-sources.jar" share)))))))
5833 (inputs (list java-asm-for-graal-truffle))))
5834
5835(define-public java-asm-analysis-for-graal-truffle
5836 (package
5837 (inherit java-asm-analysis-9)
5838 (name "java-asm-analysis-for-graal-truffle")
5839 (version "9.7.1")
5840 (source (package-source java-asm-for-graal-truffle))
5841 (inputs (list java-asm-for-graal-truffle java-asm-tree-for-graal-truffle))))
5842
5843(define-public java-asm-util-for-graal-truffle
5844 (package
5845 (inherit java-asm-util-9)
5846 (name "java-asm-util-for-graal-truffle")
5847 (version "9.7.1")
5848 (source (package-source java-asm-for-graal-truffle))
5849 (arguments
5850 `(#:jar-name "asm-util8.jar"
5851 #:source-dir "asm-util/src/main/java"
5852 #:test-dir "asm-util/src/test"
5853 #:jdk ,openjdk11
5854 #:tests? #f
5855 #:phases
5856 (modify-phases %standard-phases
5857 (add-after 'build 'create-sources-jar
5858 (lambda _
5859 (invoke "jar" "cf" "build/jar/asm-util-sources.jar"
5860 "-C" "asm-util/src/main/java" ".")))
5861 (add-after 'install 'install-sources-jar
5862 (lambda* (#:key outputs #:allow-other-keys)
5863 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5864 (install-file "build/jar/asm-util-sources.jar" share)))))))
5865 (inputs (list java-asm-for-graal-truffle java-asm-analysis-for-graal-truffle java-asm-tree-for-graal-truffle))))
5866
5867(define-public java-asm-commons-for-graal-truffle
5868 (package
5869 (inherit java-asm-commons-9)
5870 (name "java-asm-commons-for-graal-truffle")
5871 (version "9.7.1")
5872 (source (package-source java-asm-for-graal-truffle))
5873 (arguments
5874 `(#:jar-name "asm-commons8.jar"
5875 #:source-dir "asm-commons/src/main/java"
5876 #:test-dir "asm-commons/src/test"
5877 #:tests? #f
5878 #:phases
5879 (modify-phases %standard-phases
5880 (add-after 'build 'create-sources-jar
5881 (lambda _
5882 (invoke "jar" "cf" "build/jar/asm-commons-sources.jar"
5883 "-C" "asm-commons/src/main/java" ".")))
5884 (add-after 'install 'install-sources-jar
5885 (lambda* (#:key outputs #:allow-other-keys)
5886 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5887 (install-file "build/jar/asm-commons-sources.jar" share)))))))
5888 (inputs (list java-asm-for-graal-truffle java-asm-analysis-for-graal-truffle java-asm-tree-for-graal-truffle))))
5889
5890;; Truffle needs hamcrest-core 1.3, which is the exact version in Guix.
5891;; We create a separate package to keep graal-truffle dependencies explicit.
5892(define-public java-hamcrest-core-for-graal-truffle
5893 (package
5894 (inherit java-hamcrest-core)
5895 (name "java-hamcrest-core-for-graal-truffle")))
5896
5897;; mx expects NINJA as a zip file containing a ninja binary.
5898;; We create a zip from Guix's ninja package.
5899(define-public ninja-for-graal-truffle
5900 (package
5901 (name "ninja-for-graal-truffle")
5902 (version "1.10.2") ; Version mx expects
5903 (source #f)
5904 (build-system trivial-build-system)
5905 (arguments
5906 (list
5907 #:modules '((guix build utils))
5908 #:builder
5909 #~(begin
5910 (use-modules (guix build utils))
5911 (let* ((ninja-bin (string-append #$(this-package-input "ninja") "/bin/ninja"))
5912 (out #$output)
5913 (share (string-append out "/share/ninja"))
5914 (zip-file (string-append share "/ninja.zip")))
5915 (mkdir-p share)
5916 ;; Create a zip file containing the ninja binary
5917 (invoke #$(file-append (@ (gnu packages compression) zip) "/bin/zip")
5918 "-j" zip-file ninja-bin)))))
5919 (inputs (list (@ (gnu packages ninja) ninja)))
5920 (home-page "https://ninja-build.org/")
5921 (synopsis "Ninja build tool packaged for GraalVM mx")
5922 (description "Ninja build system repackaged as a zip for GraalVM's mx build tool.")
5923 (license license:asl2.0)))
5924
5925;;; TODO: VisualVM need to be built from source for GraalVM Truffle.
5926
5927;; ASM 9.8 - required by mx's internal tools (jacoco for code coverage)
5928(define-public java-asm-for-graal-mx
5929 (package
5930 (inherit java-asm-9)
5931 (name "java-asm-for-graal-mx")
5932 (version "9.8")
5933 (source (origin
5934 (method git-fetch)
5935 (uri (git-reference
5936 (url "https://gitlab.ow2.org/asm/asm")
5937 (commit "ASM_9_8")))
5938 (file-name (git-file-name name version))
5939 (sha256
5940 (base32
5941 "0ky0vz83k0r0n477la0sjyvc44ffym8kf988rqzyxnb1kvwq4b92"))))
5942 (arguments
5943 `(#:jar-name "asm9.jar"
5944 #:source-dir "asm/src/main/java"
5945 #:test-dir "asm/src/test"
5946 #:tests? #f
5947 #:phases
5948 (modify-phases %standard-phases
5949 (add-after 'build 'create-sources-jar
5950 (lambda _
5951 (invoke "jar" "cf" "build/jar/asm9-sources.jar"
5952 "-C" "asm/src/main/java" ".")))
5953 (add-after 'install 'install-sources-jar
5954 (lambda* (#:key outputs #:allow-other-keys)
5955 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5956 (install-file "build/jar/asm9-sources.jar" share)))))))))
5957
5958(define-public java-asm-tree-for-graal-mx
5959 (package
5960 (inherit java-asm-tree-9)
5961 (name "java-asm-tree-for-graal-mx")
5962 (version "9.8")
5963 (source (package-source java-asm-for-graal-mx))
5964 (arguments
5965 `(#:jar-name "asm-tree.jar"
5966 #:source-dir "asm-tree/src/main/java"
5967 #:test-dir "asm-tree/src/test"
5968 #:tests? #f
5969 #:phases
5970 (modify-phases %standard-phases
5971 (add-after 'build 'create-sources-jar
5972 (lambda _
5973 (invoke "jar" "cf" "build/jar/asm-tree-sources.jar"
5974 "-C" "asm-tree/src/main/java" ".")))
5975 (add-after 'install 'install-sources-jar
5976 (lambda* (#:key outputs #:allow-other-keys)
5977 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
5978 (install-file "build/jar/asm-tree-sources.jar" share)))))))
5979 (inputs (list java-asm-for-graal-mx))))
5980
5981(define-public java-asm-analysis-for-graal-mx
5982 (package
5983 (inherit java-asm-analysis-9)
5984 (name "java-asm-analysis-for-graal-mx")
5985 (version "9.8")
5986 (source (package-source java-asm-for-graal-mx))
5987 (inputs (list java-asm-for-graal-mx java-asm-tree-for-graal-mx))))
5988
5989(define-public java-asm-commons-for-graal-mx
5990 (package
5991 (inherit java-asm-commons-9)
5992 (name "java-asm-commons-for-graal-mx")
5993 (version "9.8")
5994 (source (package-source java-asm-for-graal-mx))
5995 (arguments
5996 `(#:jar-name "asm-commons.jar"
5997 #:source-dir "asm-commons/src/main/java"
5998 #:test-dir "asm-commons/src/test"
5999 #:tests? #f
6000 #:phases
6001 (modify-phases %standard-phases
6002 (add-after 'build 'create-sources-jar
6003 (lambda _
6004 (invoke "jar" "cf" "build/jar/asm-commons-sources.jar"
6005 "-C" "asm-commons/src/main/java" ".")))
6006 (add-after 'install 'install-sources-jar
6007 (lambda* (#:key outputs #:allow-other-keys)
6008 (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
6009 (install-file "build/jar/asm-commons-sources.jar" share)))))))
6010 (inputs (list java-asm-for-graal-mx java-asm-analysis-for-graal-mx java-asm-tree-for-graal-mx))))
6011
5384(define-public java-cglib 6012(define-public java-cglib
5385 (package 6013 (package
5386 (name "java-cglib") 6014 (name "java-cglib")
@@ -5828,6 +6456,28 @@ mathematics and statistics components addressing the most common problems not
5828available in the Java programming language or Commons Lang.") 6456available in the Java programming language or Commons Lang.")
5829 (license license:asl2.0))) 6457 (license license:asl2.0)))
5830 6458
6459;; Commons Math 3.2 - required by JMH 1.21 (specified in jmh-parent-1.21.pom)
6460(define-public java-commons-math3-for-graal-mx
6461 (package
6462 (inherit java-commons-math3)
6463 (name "java-commons-math3-for-graal-mx")
6464 (version "3.2")
6465 (source (origin
6466 (method url-fetch)
6467 (uri (string-append "mirror://apache/commons/math/source/"
6468 "commons-math3-" version "-src.tar.gz"))
6469 (sha256
6470 (base32
6471 "041k90pfqqia2ikba1q5qdzqd6qhx07k6d0sqiryk85f6032z687"))))
6472 (arguments
6473 (substitute-keyword-arguments (package-arguments java-commons-math3)
6474 ;; FastMathTest fails on JDK 8+: checks that FastMath implements all
6475 ;; StrictMath methods, but Java 8 added addExact, floorDiv, etc.
6476 ((#:tests? _ #f)
6477 #f)))
6478 (propagated-inputs
6479 (list apache-commons-parent-pom-28))))
6480
5831(define-public java-jmh 6481(define-public java-jmh
5832 (package 6482 (package
5833 (name "java-jmh") 6483 (name "java-jmh")
@@ -5843,15 +6493,14 @@ available in the Java programming language or Commons Lang.")
5843 "0i7fa7l3gdqkkgz5ddayp6m46dgbj9rqlz35xffrcbyiz3gpljy0")))) 6493 "0i7fa7l3gdqkkgz5ddayp6m46dgbj9rqlz35xffrcbyiz3gpljy0"))))
5844 (build-system maven-build-system) 6494 (build-system maven-build-system)
5845 (arguments 6495 (arguments
5846 `(#:exclude 6496 `(#:jdk ,openjdk11
6497 #:exclude
5847 (("org.apache.maven.plugins" . 6498 (("org.apache.maven.plugins" .
5848 ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin" 6499 ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin"
5849 "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin")) 6500 "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin"
6501 "maven-enforcer-plugin"))
5850 ("com.mycila.maven-license-plugin" . ("maven-license-plugin")) 6502 ("com.mycila.maven-license-plugin" . ("maven-license-plugin"))
5851 ("org.apache.maven.wagon" . ("wagon-ssh"))) 6503 ("org.apache.maven.wagon" . ("wagon-ssh")))
5852 #:maven-plugins
5853 (("maven-enforcer-plugin" ,maven-enforcer-plugin)
5854 ,@(default-maven-plugins))
5855 #:phases 6504 #:phases
5856 (modify-phases %standard-phases 6505 (modify-phases %standard-phases
5857 (add-after 'unpack 'remove-unnecessary 6506 (add-after 'unpack 'remove-unnecessary
@@ -5859,11 +6508,26 @@ available in the Java programming language or Commons Lang.")
5859 ;; requires org.apache.maven.archetype:archetype-packaging. 6508 ;; requires org.apache.maven.archetype:archetype-packaging.
5860 ;; Its subprojects also require groovy, kotlin and scala, 6509 ;; Its subprojects also require groovy, kotlin and scala,
5861 ;; respectively. 6510 ;; respectively.
5862 (delete-file-recursively "jmh-archetypes")))))) 6511 (delete-file-recursively "jmh-archetypes")))
6512 (add-after 'fix-pom-files 'fix-surefire-config
6513 (lambda _
6514 ;; Fix surefire fork crash with NullPointerException in
6515 ;; ForkedBooter.setupBooter. Per Maven Surefire documentation at
6516 ;; <https://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html>:
6517 ;; "If you're having problems loading classes, try setting
6518 ;; useSystemClassLoader=false to see if that helps."
6519 (substitute* (find-files "." "pom\\.xml$")
6520 (("<trimStackTrace>false</trimStackTrace>")
6521 "<trimStackTrace>false</trimStackTrace>
6522 <useSystemClassLoader>false</useSystemClassLoader>")))))))
5863 (propagated-inputs 6523 (propagated-inputs
5864 (list java-jopt-simple-4 java-commons-math3)) 6524 (list java-jopt-simple-4 java-commons-math3))
5865 (native-inputs 6525 (native-inputs
5866 (list java-junit java-hamcrest-core)) 6526 (list java-junit java-hamcrest-core junit-bom-5.10 junit-bom-5.10.2
6527 junit-bom-5.11 junit-bom-5.11.0 junit-bom-5.12 maven-parent-pom-44
6528 apache-parent-pom-34 apache-commons-parent-pom-39
6529 java-sisu-inject-parent-pom-0.9 java-eclipse-sisu-inject-0.9
6530 java-eclipse-sisu-plexus-0.9 java-plexus-utils-4))
5867 (home-page "https://openjdk.java.net/projects/code-tools/jmh/") 6531 (home-page "https://openjdk.java.net/projects/code-tools/jmh/")
5868 (synopsis "Benchmark harness for the JVM") 6532 (synopsis "Benchmark harness for the JVM")
5869 (description "JMH is a Java harness for building, running, and analysing 6533 (description "JMH is a Java harness for building, running, and analysing
@@ -5872,6 +6536,73 @@ targeting the JVM.")
5872 ;; GPLv2 only 6536 ;; GPLv2 only
5873 (license license:gpl2))) 6537 (license license:gpl2)))
5874 6538
6539;; JMH 1.21 - required by mx for compiler benchmarks
6540(define-public java-jmh-for-graal-mx
6541 (package
6542 (inherit java-jmh)
6543 (name "java-jmh-for-graal-mx")
6544 (version "1.21")
6545 (source (origin
6546 (method git-fetch)
6547 (uri (git-reference
6548 (url "https://github.com/openjdk/jmh")
6549 (commit version)))
6550 (file-name (git-file-name "jmh" version))
6551 (sha256
6552 (base32
6553 "1jrbrw7qbnhkzv5m1hh5mlhcxvzyivkqbr3vwnjlswhbrpswy552"))))
6554 (propagated-inputs
6555 (list java-jopt-simple-4 java-commons-math3-for-graal-mx))))
6556
6557;; JMH annotation processor - required by mx for compiler benchmarks
6558(define-public java-jmh-generator-annprocess-for-graal-mx
6559 (package
6560 (name "java-jmh-generator-annprocess-for-graal-mx")
6561 (version "1.21")
6562 (source (package-source java-jmh-for-graal-mx))
6563 (build-system maven-build-system)
6564 (arguments
6565 `(#:exclude
6566 (("org.apache.maven.plugins" .
6567 ("maven-source-plugin" "maven-archetype-plugin" "maven-shade-plugin"
6568 "maven-site-plugin" "maven-javadoc-plugin" "maven-eclipse-plugin"))
6569 ("com.mycila.maven-license-plugin" . ("maven-license-plugin"))
6570 ("org.apache.maven.wagon" . ("wagon-ssh")))
6571 #:maven-plugins
6572 (("maven-enforcer-plugin" ,maven-enforcer-plugin)
6573 ,@(default-maven-plugins))
6574 #:phases
6575 (modify-phases %standard-phases
6576 (add-after 'unpack 'chdir
6577 (lambda _
6578 (chdir "jmh-generator-annprocess")))
6579 (add-after 'chdir 'remove-unnecessary
6580 (lambda _
6581 (delete-file-recursively "../jmh-archetypes")))
6582 (add-after 'remove-unnecessary 'fix-pom
6583 (lambda _
6584 ;; Update maven plugin versions to match what Guix has
6585 ;; and remove plugins we don't have packaged
6586 (invoke "sed" "-i" "-e"
6587 "s|<version>1.4.1</version>|<version>3.0.0</version>|"
6588 "-e"
6589 "s|<version>2.6</version>|<version>3.1.0</version>|"
6590 ;; Remove maven-source-plugin block (lines 104-117)
6591 "-e" "/<!-- Create source jar -->/,/<\\/plugin>/d"
6592 ;; Remove maven-javadoc-plugin block (lines 119-135)
6593 "-e" "/<!-- Create javadoc jar -->/,/<\\/plugin>/d"
6594 ;; Remove maven-eclipse-plugin block (lines 137-145)
6595 "-e" "/<!-- Add sources and javadoc/,/<\\/plugin>/d"
6596 "../pom.xml"))))))
6597 (propagated-inputs
6598 (list java-jmh-for-graal-mx))
6599 (native-inputs
6600 (list java-junit java-hamcrest-core))
6601 (home-page "https://openjdk.java.net/projects/code-tools/jmh/")
6602 (synopsis "JMH annotation processor")
6603 (description "JMH annotation processor for generating benchmark code.")
6604 (license license:gpl2))); GPLv2 only, with classpath exception
6605
5875(define-public java-commons-collections4 6606(define-public java-commons-collections4
5876 (package 6607 (package
5877 (name "java-commons-collections4") 6608 (name "java-commons-collections4")
@@ -6011,7 +6742,7 @@ setter and getter method.")
6011(define-public java-commons-io 6742(define-public java-commons-io
6012 (package 6743 (package
6013 (name "java-commons-io") 6744 (name "java-commons-io")
6014 (version "2.5") 6745 (version "2.18.0")
6015 (source 6746 (source
6016 (origin 6747 (origin
6017 (method url-fetch) 6748 (method url-fetch)
@@ -6019,24 +6750,29 @@ setter and getter method.")
6019 "commons-io-" version "-src.tar.gz")) 6750 "commons-io-" version "-src.tar.gz"))
6020 (sha256 6751 (sha256
6021 (base32 6752 (base32
6022 "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3")))) 6753 "0cr9ryhdbk4gz6bbcdqdd28d80dik8csv2fx7h6mx7yfxgbjsrf4"))))
6023 (build-system ant-build-system) 6754 (build-system ant-build-system)
6024 (outputs '("out" "doc"))
6025 (arguments 6755 (arguments
6026 `(#:test-target "test" 6756 `(#:jar-name "commons-io.jar"
6027 #:make-flags 6757 #:source-dir "src/main/java"
6028 ,#~(list (string-append "-Djunit.jar=" 6758 #:tests? #f
6029 (car (find-files #$(this-package-native-input "java-junit")
6030 "jar$"))))
6031 #:phases 6759 #:phases
6032 (modify-phases %standard-phases 6760 (modify-phases %standard-phases
6033 (add-after 'build 'build-javadoc ant-build-javadoc) 6761 (add-before 'build 'generate-build-xml
6034 (replace 'install (install-from-pom "pom.xml")) 6762 (lambda _
6035 (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) 6763 (with-output-to-file "build.xml"
6036 (native-inputs 6764 (lambda ()
6037 (list java-junit java-hamcrest-core)) 6765 (display
6766 "<project><target name=\"jar\"/><target name=\"test\"/></project>\n")))))
6767 (replace 'build
6768 (lambda* (#:key source-dir jar-name #:allow-other-keys)
6769 (mkdir-p "build/classes")
6770 (apply invoke "javac" "-d" "build/classes"
6771 (find-files source-dir "\\.java$"))
6772 (invoke "jar" "-cf" jar-name "-C" "build/classes" ".")))
6773 (replace 'install (install-from-pom "pom.xml")))))
6038 (propagated-inputs 6774 (propagated-inputs
6039 (list apache-commons-parent-pom-39)) 6775 (list apache-commons-parent-pom-52))
6040 (home-page "https://commons.apache.org/io/") 6776 (home-page "https://commons.apache.org/io/")
6041 (synopsis "Common useful IO related classes") 6777 (synopsis "Common useful IO related classes")
6042 (description "Commons-IO contains utility classes, stream implementations, 6778 (description "Commons-IO contains utility classes, stream implementations,
@@ -6180,26 +6916,31 @@ included:
6180(define-public java-commons-lang3 6916(define-public java-commons-lang3
6181 (package 6917 (package
6182 (name "java-commons-lang3") 6918 (name "java-commons-lang3")
6183 (version "3.12.0") 6919 (version "3.17.0")
6184 (source 6920 (source
6185 (origin 6921 (origin
6186 (method url-fetch) 6922 (method url-fetch)
6187 (uri (string-append "mirror://apache/commons/lang/source/" 6923 (uri (string-append "mirror://apache/commons/lang/source/"
6188 "commons-lang3-" version "-src.tar.gz")) 6924 "commons-lang3-" version "-src.tar.gz"))
6189 (sha256 6925 (sha256
6190 (base32 "09dcv1pkdx3hpf06py8p9511f1wkin6jpacdll0c8vxpbi3yfwzv")) 6926 (base32 "0h9s5abbs41swfzdfg4dsk0gqr926avj9773j0did1az8ppn90v5"))))
6191 (patches
6192 (search-patches "java-commons-lang-fix-dependency.patch"))))
6193 (build-system ant-build-system) 6927 (build-system ant-build-system)
6194 (arguments 6928 (arguments
6195 `(#:jar-name "commons-lang3.jar" 6929 `(#:jar-name "commons-lang3.jar"
6196 #:source-dir "src/main/java" 6930 #:source-dir "src/main/java"
6197 #:tests? #f; require junit5 6931 #:tests? #f ; require junit5
6198 #:phases 6932 #:phases
6199 (modify-phases %standard-phases 6933 (modify-phases %standard-phases
6934 (add-before 'install 'make-commons-text-optional
6935 ;; commons-text is scope=provided (only for javadoc), but install-from-pom
6936 ;; still requires it. Mark it optional to avoid cycle: lang3 -> text -> lang3.
6937 (lambda _
6938 (substitute* "pom.xml"
6939 (("<artifactId>commons-text</artifactId>")
6940 "<artifactId>commons-text</artifactId>\n <optional>true</optional>"))))
6200 (replace 'install (install-from-pom "pom.xml"))))) 6941 (replace 'install (install-from-pom "pom.xml")))))
6201 (propagated-inputs 6942 (propagated-inputs
6202 (list apache-commons-parent-pom-48)) 6943 (list apache-commons-parent-pom-73))
6203 (home-page "https://commons.apache.org/lang/") 6944 (home-page "https://commons.apache.org/lang/")
6204 (synopsis "Extension of the java.lang package") 6945 (synopsis "Extension of the java.lang package")
6205 (description "The Commons Lang components contains a set of Java classes 6946 (description "The Commons Lang components contains a set of Java classes
@@ -6561,9 +7302,52 @@ used by programmers to guide the static analysis.")
6561 (("@J2ObjCIncompatible") "") 7302 (("@J2ObjCIncompatible") "")
6562 (("@IgnoreJRERequirement") "") 7303 (("@IgnoreJRERequirement") "")
6563 (("@Nullable") ""))))) 7304 (("@Nullable") "")))))
6564 ;; This is required by guava, but this is just an empty stub 7305 ;; The listenablefuture:9999.0-empty-to-avoid-conflict-with-guava artifact
7306 ;; is intentionally empty. It exists to solve a dependency conflict:
7307 ;; ListenableFuture class lives in guava, but was also published separately
7308 ;; as listenablefuture:1.0 for Android. When both are on classpath, there's
7309 ;; a duplicate class conflict. By publishing an empty stub at version 9999.0,
7310 ;; Maven's "highest version wins" resolution picks this empty jar over 1.0,
7311 ;; and the actual class comes only from guava itself.
7312 ;;
7313 ;; The upstream source only contains pom.xml (no code to compile), but Maven
7314 ;; requires a jar file to exist in the repository. We create a minimal valid
7315 ;; jar containing only a manifest.
7316 ;;
7317 ;; The upstream pom references guava-parent:26.0-android, but we only have
7318 ;; guava-parent:31.1. Since the stub doesn't need anything from the parent,
7319 ;; we install a self-contained pom without the parent reference.
6565 (add-before 'install 'install-listenablefuture-stub 7320 (add-before 'install 'install-listenablefuture-stub
6566 (install-pom-file "futures/listenablefuture9999/pom.xml")) 7321 (lambda* (#:key outputs #:allow-other-keys)
7322 (let* ((out (assoc-ref outputs "out"))
7323 (version "9999.0-empty-to-avoid-conflict-with-guava")
7324 (artifact "listenablefuture")
7325 (group "com/google/guava")
7326 (repository (string-append out "/lib/m2/" group "/"
7327 artifact "/" version "/"))
7328 (pom-name (string-append repository artifact "-" version ".pom"))
7329 (jar-name (string-append repository artifact "-" version ".jar"))
7330 (tmp-dir (mkdtemp "empty-jar.XXXXXX")))
7331 (mkdir-p repository)
7332 ;; Install a self-contained pom without the parent reference
7333 (with-output-to-file pom-name
7334 (lambda ()
7335 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
7336 (display "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n")
7337 (display " <modelVersion>4.0.0</modelVersion>\n")
7338 (display " <groupId>com.google.guava</groupId>\n")
7339 (display " <artifactId>listenablefuture</artifactId>\n")
7340 (display " <version>")
7341 (display version)
7342 (display "</version>\n")
7343 (display " <name>Guava ListenableFuture only</name>\n")
7344 (display "</project>\n")))
7345 ;; Create a minimal valid jar with just a manifest
7346 (mkdir-p (string-append tmp-dir "/META-INF"))
7347 (with-output-to-file (string-append tmp-dir "/META-INF/MANIFEST.MF")
7348 (lambda ()
7349 (display "Manifest-Version: 1.0\n")))
7350 (invoke "jar" "cf" jar-name "-C" tmp-dir "."))))
6567 (replace 'install (install-from-pom "guava/pom.xml"))))) 7351 (replace 'install (install-from-pom "guava/pom.xml")))))
6568 (inputs 7352 (inputs
6569 (list java-error-prone-annotations java-jsr305)) 7353 (list java-error-prone-annotations java-jsr305))
@@ -6578,35 +7362,36 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much
6578more!") 7362more!")
6579 (license license:asl2.0))) 7363 (license license:asl2.0)))
6580 7364
6581(define-public java-guava-futures-failureaccess 7365(define java-guava-parent-pom
6582 (package 7366 (package
6583 (inherit java-guava) 7367 (inherit java-guava)
6584 (name "java-guava-futures-failureaccess") 7368 (name "java-guava-parent-pom")
6585 (arguments 7369 (arguments
6586 `(#:tests? #f; no tests 7370 `(#:tests? #f
6587 #:jar-name "guava-futures-failureaccess.jar"
6588 #:source-dir "futures/failureaccess/src"
6589 #:phases 7371 #:phases
6590 (modify-phases %standard-phases 7372 (modify-phases %standard-phases
7373 (delete 'configure)
7374 (delete 'build)
6591 (replace 'install 7375 (replace 'install
6592 (install-from-pom "futures/failureaccess/pom.xml"))))) 7376 (install-pom-file "pom.xml")))))
6593 (propagated-inputs 7377 (propagated-inputs
6594 `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7))))) 7378 `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7)))))
6595 7379
6596(define java-guava-parent-pom 7380(define-public java-guava-futures-failureaccess
6597 (package 7381 (package
6598 (inherit java-guava) 7382 (inherit java-guava)
6599 (name "java-guava-parent-pom") 7383 (name "java-guava-futures-failureaccess")
6600 (arguments 7384 (arguments
6601 `(#:tests? #f 7385 `(#:tests? #f; no tests
7386 #:jar-name "guava-futures-failureaccess.jar"
7387 #:source-dir "futures/failureaccess/src"
6602 #:phases 7388 #:phases
6603 (modify-phases %standard-phases 7389 (modify-phases %standard-phases
6604 (delete 'configure)
6605 (delete 'build)
6606 (replace 'install 7390 (replace 'install
6607 (install-pom-file "pom.xml"))))) 7391 (install-from-pom "futures/failureaccess/pom.xml")))))
6608 (propagated-inputs 7392 (propagated-inputs
6609 `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7))))) 7393 (list java-guava-parent-pom
7394 java-sonatype-oss-parent-pom-7))))
6610 7395
6611;; The java-commons-logging package provides adapters to many different 7396;; The java-commons-logging package provides adapters to many different
6612;; logging frameworks. To avoid an excessive dependency graph we try to build 7397;; logging frameworks. To avoid an excessive dependency graph we try to build
@@ -6625,7 +7410,7 @@ more!")
6625 (build-system ant-build-system) 7410 (build-system ant-build-system)
6626 (arguments 7411 (arguments
6627 `(#:tests? #f ; avoid dependency on logging frameworks 7412 `(#:tests? #f ; avoid dependency on logging frameworks
6628 #:jar-name "commons-logging-minimal.jar" 7413 #:jar-name "commons-logging.jar"
6629 #:phases 7414 #:phases
6630 (modify-phases %standard-phases 7415 (modify-phases %standard-phases
6631 (add-after 'unpack 'delete-adapters-and-tests 7416 (add-after 'unpack 'delete-adapters-and-tests
@@ -6647,7 +7432,11 @@ more!")
6647 "AvalonLogger.java" 7432 "AvalonLogger.java"
6648 "LogKitLogger.java")) 7433 "LogKitLogger.java"))
6649 (delete-file-recursively "src/test") 7434 (delete-file-recursively "src/test")
6650 #t))))) 7435 #t))
7436 (replace 'install
7437 (install-from-pom "pom.xml")))))
7438 (propagated-inputs
7439 (list apache-commons-parent-pom-34))
6651 (home-page "https://commons.apache.org/logging/") 7440 (home-page "https://commons.apache.org/logging/")
6652 (synopsis "Common API for logging implementations") 7441 (synopsis "Common API for logging implementations")
6653 (description "The Logging package is a thin bridge between different 7442 (description "The Logging package is a thin bridge between different
@@ -6714,6 +7503,93 @@ tests with a clean and simple API. It generates mocks using reflection, and
6714it records all mock invocations, including methods arguments.") 7503it records all mock invocations, including methods arguments.")
6715 (license license:asl2.0))) 7504 (license license:asl2.0)))
6716 7505
7506(define-public java-httpcomponents-parent-pom
7507 (package
7508 (name "java-httpcomponents-parent-pom")
7509 (version "11")
7510 (source (origin
7511 (method url-fetch)
7512 (uri (string-append "https://repo.maven.apache.org/maven2/"
7513 "org/apache/httpcomponents/httpcomponents-parent/"
7514 version "/httpcomponents-parent-" version ".pom"))
7515 (sha256
7516 (base32
7517 "1ank6bjz9w9b56p4695g60nv1rr07vvgygp4gq60fmaw25xzh0d9"))))
7518 (build-system ant-build-system)
7519 (arguments
7520 `(#:tests? #f
7521 #:phases
7522 (modify-phases %standard-phases
7523 (delete 'configure)
7524 (delete 'build)
7525 (replace 'install
7526 (install-pom-file "httpcomponents-parent-11.pom")))))
7527 (propagated-inputs
7528 (list apache-parent-pom-21))
7529 (home-page "https://hc.apache.org/")
7530 (synopsis "Parent POM for Apache HttpComponents")
7531 (description "This package contains the parent POM for Apache HttpComponents
7532projects.")
7533 (license license:asl2.0)))
7534
7535(define-public java-httpcomponents-project-pom
7536 (package
7537 (name "java-httpcomponents-project-pom")
7538 (version "7")
7539 (source (origin
7540 (method url-fetch)
7541 (uri (string-append "https://repo.maven.apache.org/maven2/"
7542 "org/apache/httpcomponents/project/"
7543 version "/project-" version ".pom"))
7544 (sha256
7545 (base32
7546 "1hs8m8cgyypd6vb882zjyns58nhzrkm7cpbb0kg5i9amhm1blvix"))))
7547 (build-system ant-build-system)
7548 (arguments
7549 `(#:tests? #f
7550 #:phases
7551 (modify-phases %standard-phases
7552 (delete 'configure)
7553 (delete 'build)
7554 (replace 'install
7555 (install-pom-file (string-append "project-" ,version ".pom"))))))
7556 (propagated-inputs
7557 (list apache-parent-pom-13))
7558 (home-page "https://hc.apache.org/")
7559 (synopsis "Parent POM for Apache HttpComponents (legacy)")
7560 (description "This package contains the legacy parent POM for Apache
7561HttpComponents projects.")
7562 (license license:asl2.0)))
7563
7564(define-public java-httpcomponents-core-parent-pom
7565 (package
7566 (name "java-httpcomponents-core-parent-pom")
7567 (version "4.4.6")
7568 (source (origin
7569 (method url-fetch)
7570 (uri (string-append "mirror://apache//httpcomponents/httpcore/"
7571 "source/httpcomponents-core-"
7572 version "-src.tar.gz"))
7573 (sha256
7574 (base32
7575 "02bwcf38y4vgwq7kj2s6q7qrmma641r5lacivm16kgxvb2j6h1vy"))))
7576 (build-system ant-build-system)
7577 (arguments
7578 `(#:tests? #f
7579 #:phases
7580 (modify-phases %standard-phases
7581 (delete 'configure)
7582 (delete 'build)
7583 (replace 'install
7584 (install-pom-file "pom.xml")))))
7585 (propagated-inputs
7586 (list java-httpcomponents-project-pom))
7587 (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html")
7588 (synopsis "Parent POM for Apache HttpComponents Core")
7589 (description "This package contains the parent POM for Apache HttpComponents
7590Core modules.")
7591 (license license:asl2.0)))
7592
6717(define-public java-httpcomponents-httpcore 7593(define-public java-httpcomponents-httpcore
6718 (package 7594 (package
6719 (name "java-httpcomponents-httpcore") 7595 (name "java-httpcomponents-httpcore")
@@ -6732,9 +7608,13 @@ it records all mock invocations, including methods arguments.")
6732 #:phases 7608 #:phases
6733 (modify-phases %standard-phases 7609 (modify-phases %standard-phases
6734 (add-after 'unpack 'chdir 7610 (add-after 'unpack 'chdir
6735 (lambda _ (chdir "httpcore") #t))))) 7611 (lambda _ (chdir "httpcore") #t))
6736 (inputs 7612 (replace 'install
6737 (list java-commons-logging-minimal java-commons-lang3)) 7613 (install-from-pom "pom.xml")))))
7614 (propagated-inputs
7615 (list java-httpcomponents-core-parent-pom
7616 java-commons-logging-minimal
7617 java-commons-lang3))
6738 (native-inputs 7618 (native-inputs
6739 (list java-junit java-mockito-1)) 7619 (list java-junit java-mockito-1))
6740 (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") 7620 (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html")
@@ -6812,6 +7692,35 @@ NIO.
6812 7692
6813This package provides... some tests."))) 7693This package provides... some tests.")))
6814 7694
7695(define-public java-httpcomponents-client-parent-pom
7696 (package
7697 (name "java-httpcomponents-client-parent-pom")
7698 (version "4.5.12")
7699 (source (origin
7700 (method url-fetch)
7701 (uri (string-append "mirror://apache/httpcomponents/httpclient/"
7702 "source/httpcomponents-client-"
7703 version "-src.tar.gz"))
7704 (sha256
7705 (base32
7706 "1va99m2zc2liv0v9vn72p5ja8yz4s5wq7zpahaai5nr966kvxzkb"))))
7707 (build-system ant-build-system)
7708 (arguments
7709 `(#:tests? #f
7710 #:phases
7711 (modify-phases %standard-phases
7712 (delete 'configure)
7713 (delete 'build)
7714 (replace 'install
7715 (install-pom-file "pom.xml")))))
7716 (propagated-inputs
7717 (list java-httpcomponents-parent-pom))
7718 (home-page "https://hc.apache.org/httpcomponents-client-ga/")
7719 (synopsis "Parent POM for Apache HttpComponents Client")
7720 (description "This package contains the parent POM for Apache HttpComponents
7721Client modules.")
7722 (license license:asl2.0)))
7723
6815(define-public java-httpcomponents-httpclient 7724(define-public java-httpcomponents-httpclient
6816 (package 7725 (package
6817 (name "java-httpcomponents-httpclient") 7726 (name "java-httpcomponents-httpclient")
@@ -6830,12 +7739,16 @@ This package provides... some tests.")))
6830 #:phases 7739 #:phases
6831 (modify-phases %standard-phases 7740 (modify-phases %standard-phases
6832 (add-after 'unpack 'chdir 7741 (add-after 'unpack 'chdir
6833 (lambda _ (chdir "httpclient") #t))))) 7742 (lambda _ (chdir "httpclient") #t))
6834 (inputs 7743 (replace 'install
6835 (list java-commons-logging-minimal 7744 (install-from-pom "pom.xml")))))
7745 (propagated-inputs
7746 (list java-httpcomponents-client-parent-pom
7747 java-commons-logging-minimal
6836 java-commons-codec 7748 java-commons-codec
6837 java-hamcrest-core 7749 java-httpcomponents-httpcore))
6838 java-httpcomponents-httpcore 7750 (native-inputs
7751 (list java-hamcrest-core
6839 java-mockito-1 7752 java-mockito-1
6840 java-junit)) 7753 java-junit))
6841 (home-page "https://hc.apache.org/httpcomponents-client-ga/") 7754 (home-page "https://hc.apache.org/httpcomponents-client-ga/")
@@ -6965,14 +7878,14 @@ programs.")
6965(define-public java-commons-compress 7878(define-public java-commons-compress
6966 (package 7879 (package
6967 (name "java-commons-compress") 7880 (name "java-commons-compress")
6968 (version "1.21") 7881 (version "1.28.0")
6969 (source (origin 7882 (source (origin
6970 (method url-fetch) 7883 (method url-fetch)
6971 (uri (string-append "mirror://apache/commons/compress/source/" 7884 (uri (string-append "mirror://apache/commons/compress/source/"
6972 "commons-compress-" version "-src.tar.gz")) 7885 "commons-compress-" version "-src.tar.gz"))
6973 (sha256 7886 (sha256
6974 (base32 7887 (base32
6975 "1rkpb6xcyly1wnbx4q6iq6p5hrr0h1d0ppb5r07psc75cbmizjry")))) 7888 "0qkn70dfb1f9xihc34mbpbr5ag8qm4qq18hh3p4286r2ajj0z1sw"))))
6976 (build-system ant-build-system) 7889 (build-system ant-build-system)
6977 (arguments 7890 (arguments
6978 `(#:jar-name "commons-compress.jar" 7891 `(#:jar-name "commons-compress.jar"
@@ -6980,13 +7893,29 @@ programs.")
6980 #:tests? #f; requires java-mockito-3 7893 #:tests? #f; requires java-mockito-3
6981 #:phases 7894 #:phases
6982 (modify-phases %standard-phases 7895 (modify-phases %standard-phases
7896 (add-after 'unpack 'fix-encoding
7897 (lambda _
7898 ;; Fix non-UTF8 character in comment (ö -> o)
7899 (use-modules (ice-9 textual-ports))
7900 (let ((file "src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java"))
7901 (with-fluids ((%default-port-encoding #f))
7902 (let ((content (call-with-input-file file get-string-all)))
7903 (call-with-output-file file
7904 (lambda (port)
7905 (display (string-map (lambda (c)
7906 (if (char>? c #\~) #\o c))
7907 content)
7908 port))))))))
6983 (replace 'install (install-from-pom "pom.xml"))))) 7909 (replace 'install (install-from-pom "pom.xml")))))
6984 (propagated-inputs 7910 (propagated-inputs
6985 (list java-asm-3 7911 (list java-asm
6986 java-brotli 7912 java-brotli
6987 java-osgi-core 7913 java-osgi-core
6988 java-xz 7914 java-xz
6989 java-zstd 7915 java-zstd-1.5.7
7916 java-commons-io
7917 java-commons-lang3
7918 java-commons-codec
6990 apache-commons-parent-pom-52)) 7919 apache-commons-parent-pom-52))
6991 (home-page "https://commons.apache.org/proper/commons-compress/") 7920 (home-page "https://commons.apache.org/proper/commons-compress/")
6992 (synopsis "Java library for working with compressed files") 7921 (synopsis "Java library for working with compressed files")
@@ -6995,6 +7924,7 @@ working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ,
6995Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") 7924Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.")
6996 (license license:asl2.0))) 7925 (license license:asl2.0)))
6997 7926
7927
6998(define-public java-commons-csv 7928(define-public java-commons-csv
6999 (package 7929 (package
7000 (name "java-commons-csv") 7930 (name "java-commons-csv")
@@ -8147,7 +9077,7 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
8147(define-public java-slf4j-api 9077(define-public java-slf4j-api
8148 (package 9078 (package
8149 (name "java-slf4j-api") 9079 (name "java-slf4j-api")
8150 (version "1.7.25") 9080 (version "1.7.36")
8151 (source (origin 9081 (source (origin
8152 (method git-fetch) 9082 (method git-fetch)
8153 (uri (git-reference 9083 (uri (git-reference
@@ -8156,7 +9086,7 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
8156 (file-name (git-file-name name version)) 9086 (file-name (git-file-name name version))
8157 (sha256 9087 (sha256
8158 (base32 9088 (base32
8159 "15n42zq3k1iyn752nwdcbs44hxns2rmxhglwjfr4np7lxx56apjl")) 9089 "05kdsrvacvgdsqj812jhar813asgl2i2xlvh4i4p4i5cxg17bkq3"))
8160 (modules '((guix build utils))) 9090 (modules '((guix build utils)))
8161 ;; Delete bundled jars. 9091 ;; Delete bundled jars.
8162 (snippet 9092 (snippet
@@ -8219,7 +9149,7 @@ time.")
8219(define-public java-slf4j-simple 9149(define-public java-slf4j-simple
8220 (package 9150 (package
8221 (name "java-slf4j-simple") 9151 (name "java-slf4j-simple")
8222 (version "1.7.25") 9152 (version (package-version java-slf4j-api))
8223 (source (package-source java-slf4j-api)) 9153 (source (package-source java-slf4j-api))
8224 (build-system ant-build-system) 9154 (build-system ant-build-system)
8225 (arguments 9155 (arguments
@@ -8255,7 +9185,7 @@ printed.")
8255(define-public java-slf4j-nop 9185(define-public java-slf4j-nop
8256 (package 9186 (package
8257 (name "java-slf4j-nop") 9187 (name "java-slf4j-nop")
8258 (version "1.7.25") 9188 (version (package-version java-slf4j-api))
8259 (source (package-source java-slf4j-api)) 9189 (source (package-source java-slf4j-api))
8260 (build-system ant-build-system) 9190 (build-system ant-build-system)
8261 (arguments 9191 (arguments
@@ -8814,6 +9744,21 @@ actual rendering.")
8814sources by ANTLR.") 9744sources by ANTLR.")
8815 (license license:bsd-3))) 9745 (license license:bsd-3)))
8816 9746
9747(define-public java-antlr4-runtime-for-graal-truffle
9748 (package
9749 (inherit java-antlr4-runtime)
9750 (name "java-antlr4-runtime-for-graal-truffle")
9751 (version "4.13.2")
9752 (source (origin
9753 (method git-fetch)
9754 (uri (git-reference
9755 (url "https://github.com/antlr/antlr4")
9756 (commit version)))
9757 (file-name (git-file-name name version))
9758 (sha256
9759 (base32
9760 "1dpmqjq5z0r0543jfsbl9rwjrv459dxj378vs6qhy52hw4pm270g"))))))
9761
8817(define-public java-antlr4-runtime-cpp 9762(define-public java-antlr4-runtime-cpp
8818 (package 9763 (package
8819 (inherit java-antlr4-runtime) 9764 (inherit java-antlr4-runtime)
@@ -10417,7 +11362,32 @@ of deserialization.")
10417 (home-page "https://bitbucket.org/asomov/snakeyaml") 11362 (home-page "https://bitbucket.org/asomov/snakeyaml")
10418 (synopsis "YAML processor") 11363 (synopsis "YAML processor")
10419 (description "SnakeYAML is a YAML processor for the Java Virtual Machine.") 11364 (description "SnakeYAML is a YAML processor for the Java Virtual Machine.")
10420 (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing 11365 (license license:asl2.0)))
11366
11367(define-public java-snakeyaml-2
11368 (package
11369 (inherit java-snakeyaml)
11370 (version "2.3")
11371 (source (origin
11372 (method url-fetch)
11373 (uri (string-append
11374 "https://bitbucket.org/snakeyaml/snakeyaml/get/snakeyaml-"
11375 version ".tar.gz"))
11376 (file-name (string-append "java-snakeyaml-" version ".tar.gz"))
11377 (sha256
11378 (base32
11379 "1mszlr8yczf6m2cijcp8g35pbb7pggi2b2yr4avqmk4crzws947l"))))
11380 (arguments
11381 `(#:jar-name "snakeyaml.jar"
11382 #:source-dir "src/main/java"
11383 #:tests? #f
11384 #:phases
11385 (modify-phases %standard-phases
11386 (add-before 'install 'create-pom
11387 (generate-pom.xml "pom.xml" "org.yaml" "snakeyaml" ,version))
11388 (replace 'install
11389 (install-from-pom "pom.xml")))))
11390 (home-page "https://bitbucket.org/snakeyaml/snakeyaml")))
10421 11391
10422(define-public java-fasterxml-jackson-dataformat-yaml 11392(define-public java-fasterxml-jackson-dataformat-yaml
10423 (package 11393 (package
@@ -10872,6 +11842,97 @@ Java 6 and above.")
10872Java projects.") 11842Java projects.")
10873 (license license:asl2.0))) 11843 (license license:asl2.0)))
10874 11844
11845(define-public java-guice-5
11846 (package
11847 (name "java-guice")
11848 (version "5.1.0")
11849 (source (origin
11850 (method git-fetch)
11851 (uri (git-reference
11852 (url "https://github.com/google/guice")
11853 (commit version)))
11854 (file-name (git-file-name name version))
11855 (modules '((guix build utils)))
11856 (snippet
11857 `(begin
11858 (for-each delete-file (find-files "." ".*.jar")) #t))
11859 (sha256
11860 (base32
11861 "05w8g9lmj8623b6f6c2xyriyhf44vwvqg0i1dszhrsnhk5f1jv71"))))
11862 (build-system ant-build-system)
11863 (arguments
11864 `(#:jar-name "java-guice.jar"
11865 #:jdk ,openjdk11
11866 #:tests? #f ; FIXME: tests are not in a java sub directory
11867 #:source-dir "core/src"
11868 #:phases
11869 (modify-phases %standard-phases
11870 (add-after 'unpack 'make-files-writable
11871 (lambda _
11872 (for-each make-file-writable (find-files "."))
11873 #t))
11874 (replace 'install
11875 (install-from-pom "core/pom.xml")))))
11876 (propagated-inputs
11877 (list java-aopalliance
11878 java-guava
11879 java-javax-inject
11880 java-asm-9
11881 java-jsr305
11882 java-error-prone-annotations
11883 java-guice-5-parent-pom))
11884 (home-page "https://github.com/google/guice")
11885 (synopsis "Lightweight dependency injection framework")
11886 (description "Guice is a lightweight dependency injection framework for
11887Java 6 and above. This is version 5, with ASM 9 support for Java 11+.")
11888 (license license:asl2.0)))
11889
11890(define java-guice-5-parent-pom
11891 (package
11892 (inherit java-guice-5)
11893 (name "java-guice-parent-pom")
11894 (arguments
11895 `(#:tests? #f
11896 #:phases
11897 (modify-phases %standard-phases
11898 (delete 'configure)
11899 (delete 'build)
11900 (add-after 'install 'install-extensions
11901 (install-pom-file "extensions/pom.xml"))
11902 (replace 'install
11903 (install-pom-file "pom.xml")))))
11904 (propagated-inputs
11905 `(("java-google-parent-pom" ,java-google-parent-pom-5)))))
11906
11907(define-public java-guice-5-servlet
11908 (package
11909 (inherit java-guice-5)
11910 (name "java-guice-servlet")
11911 (arguments
11912 `(#:jar-name "guice-servlet.jar"
11913 #:jdk ,openjdk11
11914 #:source-dir "extensions/servlet/src/"
11915 #:tests? #f ; FIXME: not in a java subdir
11916 #:phases
11917 (modify-phases %standard-phases
11918 (add-after 'unpack 'make-files-writable
11919 (lambda _
11920 (for-each make-file-writable (find-files "."))
11921 #t))
11922 (add-before 'install 'remove-provided-dependencies
11923 ;; Remove provided/test scope dependencies from POM since
11924 ;; install-from-pom can't find javax.servlet:servlet-api Maven coords.
11925 (lambda _
11926 (invoke "sed" "-i" "/<dependencies>/,/<\\/dependencies>/d"
11927 "extensions/servlet/pom.xml")
11928 #t))
11929 (replace 'install
11930 (install-from-pom "extensions/servlet/pom.xml")))))
11931 (propagated-inputs
11932 (list java-guice-5 java-guice-5-parent-pom))
11933 (inputs
11934 (list java-classpathx-servletapi))))
11935
10875(define-public java-assertj 11936(define-public java-assertj
10876 (package 11937 (package
10877 (name "java-assertj") 11938 (name "java-assertj")
@@ -11139,7 +12200,9 @@ those in Perl and JavaScript.")
11139 (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") "") 12200 (("<class name=\"test.serviceloader.ServiceLoaderTest\" />") "")
11140 ;; This is a parallel test and we've observed that it fails 12201 ;; This is a parallel test and we've observed that it fails
11141 ;; sometimes. 12202 ;; sometimes.
11142 (("<class name=\"test.dataprovider.DataProviderTest\"/>") "")))) 12203 (("<class name=\"test.dataprovider.DataProviderTest\"/>") "")
12204 ;; Flaky multi-threaded test
12205 (("<class name=\"test.thread.MultiThreadedDependentTest\" />") ""))))
11143 ;; We don't have groovy 12206 ;; We don't have groovy
11144 (add-after 'unpack 'delete-groovy-tests 12207 (add-after 'unpack 'delete-groovy-tests
11145 (lambda _ 12208 (lambda _
@@ -11431,6 +12494,85 @@ algorithms and xxHash hashing algorithm.")
11431programming language.") 12494programming language.")
11432 (license license:expat))) 12495 (license license:expat)))
11433 12496
12497;;; Bouncy Castle 1.78.1 components for GraalPy (needs jdk18on jars)
12498
12499(define bc-java-1.78.1-source
12500 (origin
12501 (method url-fetch)
12502 (uri "https://codeload.github.com/bcgit/bc-java/tar.gz/refs/tags/r1rv78v1")
12503 (file-name "bc-java-1.78.1.tar.gz")
12504 (sha256
12505 (base32 "09i973ypv1dhvp2m50jnr71wwqsxs64qdpinm62phib3hw4nhwvb"))))
12506
12507(define (bc-java-1.78.1-package name jar-name build-target synopsis description)
12508 (package
12509 (name name)
12510 (version "1.78.1")
12511 (source bc-java-1.78.1-source)
12512 (build-system ant-build-system)
12513 (arguments
12514 (list
12515 #:jar-name (string-append jar-name ".jar")
12516 #:tests? #f
12517 #:phases
12518 #~(modify-phases %standard-phases
12519 (replace 'build
12520 (lambda _
12521 (invoke "ant" "-f" "ant/jdk18+.xml" #$build-target)))
12522 (replace 'install
12523 (lambda* (#:key outputs #:allow-other-keys)
12524 (let* ((out (assoc-ref outputs "out"))
12525 (share (string-append out "/share/java"))
12526 ;; bc-java appends version as 17801 (no dots)
12527 (src-jar (string-append "build/artifacts/jdk1.8/jars/"
12528 #$jar-name "-17801.jar"))
12529 (src-dir (string-append "build/artifacts/jdk1.8/"
12530 #$jar-name "-17801/src"))
12531 ;; MX_URLREWRITES expects bcprov-jdk18on.jar (no version)
12532 (dst-jar (string-append share "/" #$jar-name ".jar"))
12533 (dst-sources-jar (string-append share "/" #$jar-name "-sources.jar")))
12534 (mkdir-p share)
12535 (copy-file src-jar dst-jar)
12536 ;; Create sources JAR from the source directory
12537 (invoke "jar" "cf" dst-sources-jar "-C" src-dir ".")))))))
12538 (native-inputs (list unzip java-junit java-native-access java-native-access-platform))
12539 (home-page "https://www.bouncycastle.org")
12540 (synopsis synopsis)
12541 (description description)
12542 (license license:expat)))
12543
12544;;; These are separate packages because GraalPy's MX_URLREWRITES mechanism
12545;;; rewrites Maven artifact URLs to local paths. Maven artifacts are per-JAR,
12546;;; so each JAR needs its own Guix package to map to the expected path:
12547;;; org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1.jar
12548;;; org/bouncycastle/bcutil-jdk18on/1.78.1/bcutil-jdk18on-1.78.1.jar
12549;;; org/bouncycastle/bcpkix-jdk18on/1.78.1/bcpkix-jdk18on-1.78.1.jar
12550;;; A single combined package would not satisfy these individual URL rewrites.
12551
12552(define-public java-bcprov-for-graalpy
12553 (bc-java-1.78.1-package
12554 "java-bcprov-for-graalpy"
12555 "bcprov-jdk18on"
12556 "build-provider"
12557 "Bouncy Castle provider for GraalPy"
12558 "Crypto provider from Bouncy Castle built for GraalPy."))
12559
12560(define-public java-bcutil-for-graalpy
12561 (bc-java-1.78.1-package
12562 "java-bcutil-for-graalpy"
12563 "bcutil-jdk18on"
12564 "build-util"
12565 "Bouncy Castle utility classes for GraalPy"
12566 "Utility support classes from Bouncy Castle for GraalPy."))
12567
12568(define-public java-bcpkix-for-graalpy
12569 (bc-java-1.78.1-package
12570 "java-bcpkix-for-graalpy"
12571 "bcpkix-jdk18on"
12572 "build-pkix"
12573 "Bouncy Castle PKIX/CMS for GraalPy"
12574 "PKIX and CMS support from Bouncy Castle for GraalPy."))
12575
11434(define-public java-lmax-disruptor 12576(define-public java-lmax-disruptor
11435 (package 12577 (package
11436 (name "java-lmax-disruptor") 12578 (name "java-lmax-disruptor")
@@ -11618,6 +12760,7 @@ streams, etc.")
11618 `(#:jar-name "byte-buddy-dep.jar" 12760 `(#:jar-name "byte-buddy-dep.jar"
11619 #:source-dir "byte-buddy-dep/src/main/java" 12761 #:source-dir "byte-buddy-dep/src/main/java"
11620 #:test-dir "byte-buddy-dep/src/test" 12762 #:test-dir "byte-buddy-dep/src/test"
12763 #:jdk ,openjdk11
11621 #:tests? #f; would build java files that are incompatible with current jdk 12764 #:tests? #f; would build java files that are incompatible with current jdk
11622 #:phases 12765 #:phases
11623 (modify-phases %standard-phases 12766 (modify-phases %standard-phases
@@ -11661,7 +12804,8 @@ and without the help of a compiler.")
11661 (arguments 12804 (arguments
11662 `(#:jar-name "java-powermock-reflect.jar" 12805 `(#:jar-name "java-powermock-reflect.jar"
11663 #:source-dir "powermock-reflect/src/main/java" 12806 #:source-dir "powermock-reflect/src/main/java"
11664 #:test-dir "powermock-reflect/src/test")) 12807 #:test-dir "powermock-reflect/src/test"
12808 #:jdk ,openjdk11))
11665 (inputs 12809 (inputs
11666 (list java-asm-9 java-objenesis)) 12810 (list java-asm-9 java-objenesis))
11667 (native-inputs 12811 (native-inputs
@@ -11685,7 +12829,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
11685 #:source-dir "powermock-core/src/main/java" 12829 #:source-dir "powermock-core/src/main/java"
11686 #:test-dir "powermock-core/src/test" 12830 #:test-dir "powermock-core/src/test"
11687 #:tests? #f; requires powermock-api 12831 #:tests? #f; requires powermock-api
11688 #:jdk ,icedtea-8 12832 #:jdk ,openjdk11
11689 #:phases 12833 #:phases
11690 (modify-phases %standard-phases 12834 (modify-phases %standard-phases
11691 (add-before 'build 'copy-resources 12835 (add-before 'build 'copy-resources
@@ -11708,7 +12852,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
11708 (build-system ant-build-system) 12852 (build-system ant-build-system)
11709 (arguments 12853 (arguments
11710 `(#:jar-name "java-powermock-api-support.jar" 12854 `(#:jar-name "java-powermock-api-support.jar"
11711 #:jdk ,icedtea-8 12855 #:jdk ,openjdk11
11712 #:source-dir "powermock-api/powermock-api-support/src/main/java" 12856 #:source-dir "powermock-api/powermock-api-support/src/main/java"
11713 #:tests? #f)); no tests 12857 #:tests? #f)); no tests
11714 (inputs 12858 (inputs
@@ -11721,7 +12865,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
11721 (build-system ant-build-system) 12865 (build-system ant-build-system)
11722 (arguments 12866 (arguments
11723 `(#:jar-name "java-powermock-modules-junit4-common.jar" 12867 `(#:jar-name "java-powermock-modules-junit4-common.jar"
11724 #:jdk ,icedtea-8 12868 #:jdk ,openjdk11
11725 #:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java" 12869 #:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java"
11726 #:test-dir "powermock-modules/powermock-module-junit4-common/src/test")) 12870 #:test-dir "powermock-modules/powermock-module-junit4-common/src/test"))
11727 (inputs 12871 (inputs
@@ -11739,6 +12883,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
11739 (arguments 12883 (arguments
11740 `(#:jar-name "java-powermock-modules-junit4.jar" 12884 `(#:jar-name "java-powermock-modules-junit4.jar"
11741 #:tests? #f; require easymock 4, which introduces a loop with testng 12885 #:tests? #f; require easymock 4, which introduces a loop with testng
12886 #:jdk ,openjdk11
11742 #:source-dir "powermock-modules/powermock-module-junit4/src/main/java" 12887 #:source-dir "powermock-modules/powermock-module-junit4/src/main/java"
11743 #:test-dir "powermock-modules/powermock-module-junit4/src/test" 12888 #:test-dir "powermock-modules/powermock-module-junit4/src/test"
11744 #:phases 12889 #:phases
@@ -11768,7 +12913,7 @@ done to the IDE or continuous integration servers which simplifies adoption.")
11768 (build-system ant-build-system) 12913 (build-system ant-build-system)
11769 (arguments 12914 (arguments
11770 `(#:jar-name "java-powermock-api-easymock.jar" 12915 `(#:jar-name "java-powermock-api-easymock.jar"
11771 #:jdk ,icedtea-8 12916 #:jdk ,openjdk11
11772 #:source-dir "powermock-api/powermock-api-easymock/src/main/java" 12917 #:source-dir "powermock-api/powermock-api-easymock/src/main/java"
11773 #:tests? #f; no tests 12918 #:tests? #f; no tests
11774 #:phases 12919 #:phases
@@ -11958,21 +13103,9 @@ disk storage or off-heap memory.")
11958 #:jdk ,icedtea-8 13103 #:jdk ,icedtea-8
11959 #:source-dir "clients/src/main/java" 13104 #:source-dir "clients/src/main/java"
11960 #:test-dir "clients/src/test" 13105 #:test-dir "clients/src/test"
11961 #:test-exclude 13106 ;; Tests require powermock which uses ASM 9 compiled with Java 11,
11962 (list 13107 ;; creating class version incompatibility with icedtea-8.
11963 ;; This file does not contain a class 13108 #:tests? #f))
11964 "**/IntegrationTest.java"
11965 ;; Requires network
11966 "**/ClientUtilsTest.java"
11967 ;; This test fails on i686
11968 "**/SerializationTest.java"
11969 ;; "protocol is disabled or cipher suites are inappropriate"
11970 "**/SslTransportLayerTest.java"
11971 ;; End with errors that seem related to our powermock
11972 "**/KafkaProducerTest.java"
11973 "**/BufferPoolTest.java"
11974 ;; Undeterministic failure, seems to affect mostly ci
11975 "**/GarbageCollectedMemoryPoolTest.java")))
11976 (inputs 13109 (inputs
11977 (list java-slf4j-api java-lz4)) 13110 (list java-slf4j-api java-lz4))
11978 (native-inputs 13111 (native-inputs
@@ -12835,6 +13968,9 @@ features that bring it on par with the Z shell line editor.")
12835 "1c6qa26mf0viw8hg4jnv72s7i1qb1gh1l8rrzcdvqhqhx82rkdlf")))) 13968 "1c6qa26mf0viw8hg4jnv72s7i1qb1gh1l8rrzcdvqhqhx82rkdlf"))))
12836 (arguments 13969 (arguments
12837 `(#:jdk ,icedtea-8 13970 `(#:jdk ,icedtea-8
13971 ;; Tests require powermock which uses ASM 9 compiled with Java 11,
13972 ;; creating class version incompatibility with icedtea-8.
13973 #:tests? #f
12838 ,@(package-arguments java-jline))) 13974 ,@(package-arguments java-jline)))
12839 (inputs 13975 (inputs
12840 (list java-jansi-1 java-jansi-native)) 13976 (list java-jansi-1 java-jansi-native))
@@ -12950,6 +14086,525 @@ find most of the command editing features of JLine to be familiar.
12950This package includes the line reader.") 14086This package includes the line reader.")
12951 (license license:bsd-3))) 14087 (license license:bsd-3)))
12952 14088
14089(define-public java-juniversalchardet
14090 (package
14091 (name "java-juniversalchardet")
14092 (version "2.5.0")
14093 (source (origin
14094 (method git-fetch)
14095 (uri (git-reference
14096 (url "https://github.com/albfernandez/juniversalchardet")
14097 (commit (string-append "v" version))))
14098 (file-name (git-file-name name version))
14099 (sha256
14100 (base32
14101 "039v25hmaf89mc949jn3sg70gp68gn0vilq2v159aavyircza0w7"))))
14102 (build-system ant-build-system)
14103 (arguments
14104 `(#:jar-name "juniversalchardet.jar"
14105 #:jdk ,openjdk11
14106 #:tests? #f
14107 #:source-dir "src/main/java"))
14108 (home-page "https://github.com/albfernandez/juniversalchardet")
14109 (synopsis "Character encoding detection library for Java")
14110 (description "JUniversalChardet is a Java port of universalchardet,
14111a character encoding detection library.")
14112 (license license:mpl2.0)))
14113
14114(define-public java-jline-native-for-graal-truffle
14115 (package
14116 (name "java-jline-native-for-graal-truffle")
14117 (version "3.28.0")
14118 (source (origin
14119 (method git-fetch)
14120 (uri (git-reference
14121 (url "https://github.com/jline/jline3")
14122 (commit (string-append "jline-" version))))
14123 (file-name (git-file-name name version))
14124 (sha256
14125 (base32
14126 "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj"))))
14127 (build-system ant-build-system)
14128 (arguments
14129 `(#:jar-name "jline-native.jar"
14130 #:tests? #f
14131 #:jdk ,openjdk25
14132 #:source-dir "native/src/main/java"
14133 #:phases
14134 (modify-phases %standard-phases
14135 (add-after 'unpack 'remove-build-file
14136 (lambda _
14137 (delete-file "build"))))))
14138 (home-page "https://github.com/jline/jline3")
14139 (synopsis "JLine native library support for GraalVM Truffle")
14140 (description "JLine native library module for GraalVM Truffle.")
14141 (license license:bsd-3)))
14142
14143(define-public java-jline-terminal-for-graal-truffle
14144 (package
14145 (inherit java-jline-terminal)
14146 (name "java-jline-terminal-for-graal-truffle")
14147 (version "3.28.0")
14148 (source (origin
14149 (method git-fetch)
14150 (uri (git-reference
14151 (url "https://github.com/jline/jline3")
14152 (commit (string-append "jline-" version))))
14153 (file-name (git-file-name name version))
14154 (sha256
14155 (base32
14156 "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj"))))
14157 (arguments
14158 `(#:jar-name "jline-terminal.jar"
14159 #:tests? #f
14160 #:jdk ,openjdk25
14161 #:source-dir "terminal/src/main/java"
14162 #:test-dir "terminal/src/test"
14163 #:phases
14164 (modify-phases %standard-phases
14165 (add-after 'unpack 'remove-build-file
14166 (lambda _
14167 (delete-file "build")))
14168 (add-after 'unpack 'patch-paths
14169 (lambda* (#:key inputs #:allow-other-keys)
14170 (substitute* "terminal/src/main/java/org/jline/utils/OSUtils.java"
14171 (("= \"infocmp\"")
14172 (string-append "= \"" (assoc-ref inputs "ncurses")
14173 "/bin/infocmp\""))
14174 (("= \"(s?tty)\"" _ cmd)
14175 (string-append "= \"" (assoc-ref inputs "coreutils")
14176 "/bin/" cmd "\"")))))
14177 (add-after 'build 'add-resources
14178 (lambda* (#:key jar-name source-dir #:allow-other-keys)
14179 (let ((build (string-append (getcwd) "/build")))
14180 (with-directory-excursion
14181 (string-append source-dir "/../resources")
14182 (apply invoke "jar" "-uvf"
14183 (string-append build "/jar/" jar-name)
14184 (find-files "."))))))
14185 (add-after 'add-resources 'create-sources-jar
14186 (lambda* (#:key source-dir #:allow-other-keys)
14187 ;; Create a sources JAR from the source files.
14188 ;; mx shading needs .java source files, not .class files.
14189 (let ((sources-jar (string-append (getcwd) "/build/jar/jline-terminal-sources.jar")))
14190 (invoke "jar" "cf" sources-jar "-C" source-dir "org")
14191 ;; Also add resources to the sources JAR.
14192 (with-directory-excursion (string-append source-dir "/../resources")
14193 (apply invoke "jar" "-uvf" sources-jar (find-files "."))))))
14194 (add-after 'install 'install-sources-jar
14195 (lambda* (#:key outputs #:allow-other-keys)
14196 (let* ((out (assoc-ref outputs "out"))
14197 (lib (string-append out "/share/java")))
14198 (install-file "build/jar/jline-terminal-sources.jar" lib)))))))
14199 (inputs
14200 (list ncurses java-jline-native-for-graal-truffle))))
14201
14202(define-public java-jline-reader-for-graal-truffle
14203 (package
14204 (inherit java-jline-reader)
14205 (name "java-jline-reader-for-graal-truffle")
14206 (version "3.28.0")
14207 (source (origin
14208 (method git-fetch)
14209 (uri (git-reference
14210 (url "https://github.com/jline/jline3")
14211 (commit (string-append "jline-" version))))
14212 (file-name (git-file-name name version))
14213 (sha256
14214 (base32
14215 "06804s31zxxwbh8nnf2hd4w5kbzgpgfnp4mcr9bk5h3mkgrp6lkj"))))
14216 (arguments
14217 `(#:jar-name "jline-reader.jar"
14218 #:tests? #f
14219 #:jdk ,openjdk25
14220 #:source-dir "reader/src/main/java"
14221 #:test-dir "reader/src/test"
14222 #:phases
14223 (modify-phases %standard-phases
14224 (add-before 'build 'remove-build-file
14225 (lambda _
14226 (delete-file "build")))
14227 (add-after 'build 'create-sources-jar
14228 (lambda* (#:key source-dir #:allow-other-keys)
14229 ;; Create a sources JAR from the source files.
14230 (invoke "jar" "cf" "build/jar/jline-reader-sources.jar"
14231 "-C" source-dir "org")))
14232 (add-after 'install 'install-sources-jar
14233 (lambda* (#:key outputs #:allow-other-keys)
14234 (let* ((out (assoc-ref outputs "out"))
14235 (lib (string-append out "/share/java")))
14236 (install-file "build/jar/jline-reader-sources.jar" lib)))))))
14237 (inputs
14238 (list java-jline-terminal-for-graal-truffle))))
14239
14240(define-public java-jline-builtins-for-graal-truffle
14241 (package
14242 (inherit java-jline-reader-for-graal-truffle)
14243 (name "java-jline-builtins-for-graal-truffle")
14244 (arguments
14245 `(#:jar-name "jline-builtins.jar"
14246 #:tests? #f
14247 #:jdk ,openjdk25
14248 #:source-dir "builtins/src/main/java"
14249 #:test-dir "builtins/src/test"
14250 #:phases
14251 (modify-phases %standard-phases
14252 (add-before 'build 'remove-build-file
14253 (lambda _
14254 (delete-file "build")))
14255 (add-after 'build 'create-sources-jar
14256 (lambda* (#:key source-dir #:allow-other-keys)
14257 ;; Create a sources JAR from the source files.
14258 (invoke "jar" "cf" "build/jar/jline-builtins-sources.jar"
14259 "-C" source-dir "org")))
14260 (add-after 'install 'install-sources-jar
14261 (lambda* (#:key outputs #:allow-other-keys)
14262 (let* ((out (assoc-ref outputs "out"))
14263 (lib (string-append out "/share/java")))
14264 (install-file "build/jar/jline-builtins-sources.jar" lib)))))))
14265 (inputs
14266 (list java-jline-terminal-for-graal-truffle
14267 java-jline-reader-for-graal-truffle
14268 ;; Needed to compile Nano.java which imports UniversalDetector.
14269 ;; GraalVM's mx build patches this out during shading (in
14270 ;; org.graalvm.shadowed.org.jline) and adds a stub class, so mx
14271 ;; itself does not need juniversalchardet--only this Guix build does.
14272 java-juniversalchardet))
14273 (synopsis "JLine builtins for GraalVM Truffle")
14274 (description "JLine builtins module for GraalVM Truffle.")))
14275
14276(define-public java-jline-terminal-ffm-for-graal-truffle
14277 (package
14278 (inherit java-jline-reader-for-graal-truffle)
14279 (name "java-jline-terminal-ffm-for-graal-truffle")
14280 (arguments
14281 `(#:jar-name "jline-terminal-ffm.jar"
14282 #:tests? #f
14283 #:jdk ,openjdk25
14284 #:source-dir "terminal-ffm/src/main/java"
14285 #:test-dir "terminal-ffm/src/test"
14286 #:phases
14287 (modify-phases %standard-phases
14288 (add-before 'build 'remove-build-file
14289 (lambda _
14290 (delete-file "build")))
14291 (add-after 'build 'create-sources-jar
14292 (lambda* (#:key source-dir #:allow-other-keys)
14293 ;; Create a sources JAR from the source files.
14294 (invoke "jar" "cf" "build/jar/jline-terminal-ffm-sources.jar"
14295 "-C" source-dir "org")))
14296 (add-after 'install 'install-sources-jar
14297 (lambda* (#:key outputs #:allow-other-keys)
14298 (let* ((out (assoc-ref outputs "out"))
14299 (lib (string-append out "/share/java")))
14300 (install-file "build/jar/jline-terminal-ffm-sources.jar" lib)))))))
14301 (inputs
14302 (list java-jline-terminal-for-graal-truffle
14303 java-jline-native-for-graal-truffle))
14304 (synopsis "JLine terminal FFM for GraalVM Truffle")
14305 (description "JLine terminal FFM (Foreign Function Memory) module for GraalVM Truffle.")))
14306
14307;; org.json JSON library for GraalVM Truffle
14308;; GraalVM needs this for TRUFFLE_JSON which is used by TRUFFLE_PROFILER in tools.
14309(define-public java-json-for-graal-truffle
14310 (package
14311 (name "java-json-for-graal-truffle")
14312 (version "20250517")
14313 (source (origin
14314 (method url-fetch)
14315 (uri (string-append "https://github.com/stleary/JSON-java/archive/refs/tags/"
14316 version ".tar.gz"))
14317 (file-name (string-append "java-json-" version ".tar.gz"))
14318 (sha256
14319 (base32 "0291f9fkr9v8qh4vlxkv62vzs4dadpzhxrrcw5pbg69ml0pwq5wz"))))
14320 (build-system ant-build-system)
14321 (arguments
14322 `(#:jar-name "json.jar"
14323 #:source-dir "src/main/java"
14324 #:tests? #f ; No test source directory in release tarball
14325 #:phases
14326 (modify-phases %standard-phases
14327 (add-after 'build 'create-sources-jar
14328 (lambda _
14329 ;; Create a sources JAR from the source files.
14330 ;; mx shading needs .java source files, not .class files.
14331 (invoke "jar" "cf" "json-sources.jar"
14332 "-C" "src/main/java" "org")))
14333 (add-after 'install 'install-sources-jar
14334 (lambda* (#:key outputs #:allow-other-keys)
14335 (let ((share (string-append (assoc-ref outputs "out")
14336 "/share/java/")))
14337 (install-file "json-sources.jar" share)))))))
14338 (home-page "https://github.com/stleary/JSON-java")
14339 (synopsis "JSON library for Java")
14340 (description "Reference implementation of a JSON parser in Java, used by
14341GraalVM's TRUFFLE_JSON distribution.")
14342 (license license:public-domain)))
14343
14344;; JUnit 4.13.2 for GraalVM.
14345(define-public java-junit-for-graal
14346 (package
14347 (inherit java-junit)
14348 (name "java-junit-for-graal")
14349 (version "4.13.2")
14350 (source (origin
14351 (method git-fetch)
14352 (uri (git-reference
14353 (url "https://github.com/junit-team/junit4")
14354 (commit (string-append "r" version))))
14355 (file-name (git-file-name name version))
14356 (sha256
14357 (base32 "1r7k4zzscc8019np3is3bzfigw8fxd6s3259cbhzzh02q6d5p9h3"))))
14358 (arguments
14359 (list #:jar-name "junit.jar"
14360 #:source-dir "src/main/java"
14361 #:tests? #f ; Skip tests to avoid circular dependencies
14362 #:jdk openjdk17
14363 #:phases
14364 #~(modify-phases %standard-phases
14365 (add-after 'build 'create-sources-jar
14366 (lambda _
14367 (invoke "jar" "cf" "junit-sources.jar"
14368 "-C" "src/main/java" ".")))
14369 (add-after 'install 'install-sources-jar
14370 (lambda _
14371 (install-file "junit-sources.jar"
14372 (string-append #$output "/share/java/")))))))
14373 (propagated-inputs
14374 (list java-hamcrest-core-for-graal-truffle))
14375 (native-inputs '())
14376 (description "JUnit is a simple framework to write repeatable tests for Java
14377projects. This version (4.13.2) is required by the GraalVM mx build system.")))
14378
14379(define-public java-capnproto-runtime-for-graal-truffle
14380 (package
14381 (name "java-capnproto-runtime-for-graal-truffle")
14382 (version "0.1.16")
14383 (source (origin
14384 (method git-fetch)
14385 (uri (git-reference
14386 (url "https://github.com/capnproto/capnproto-java")
14387 (commit (string-append "v" version))))
14388 (file-name (git-file-name name version))
14389 (sha256
14390 (base32 "0faq213kkrb2441k6bn7868yj5bdqvanq1xxsp2gc9mcf922vrpf"))))
14391 (build-system ant-build-system)
14392 (arguments
14393 `(#:jar-name "capnproto-runtime.jar"
14394 #:source-dir "runtime/src/main/java"
14395 #:test-dir "runtime/src/test"
14396 #:jdk ,openjdk17
14397 #:phases
14398 (modify-phases %standard-phases
14399 (add-after 'build 'create-sources-jar
14400 (lambda _
14401 (invoke "jar" "cf" "capnproto-runtime-sources.jar"
14402 "-C" "runtime/src/main/java" "org")))
14403 (add-after 'install 'install-sources-jar
14404 (lambda* (#:key outputs #:allow-other-keys)
14405 (let ((share (string-append (assoc-ref outputs "out")
14406 "/share/java/")))
14407 (install-file "capnproto-runtime-sources.jar" share)))))))
14408 (native-inputs (list java-junit-for-graal))
14409 (home-page "https://capnproto.org/")
14410 (synopsis "Cap'n Proto runtime library for Java")
14411 (description "Cap'n Proto is an extremely fast data interchange format
14412and capability-based RPC system. This package provides the Java runtime
14413library needed by GraalVM's SubstrateVM.")
14414 (license license:expat)))
14415
14416;; JCodings for GraalVM Truffle (character encoding library)
14417(define-public java-jcodings-for-graal-truffle
14418 (package
14419 (name "java-jcodings-for-graal-truffle")
14420 (version "1.0.63")
14421 (source (origin
14422 (method git-fetch)
14423 (uri (git-reference
14424 (url "https://github.com/jruby/jcodings")
14425 (commit (string-append "jcodings-" version))))
14426 (file-name (git-file-name name version))
14427 (sha256
14428 (base32 "1f0npcz93fsm4l7hik7gkxnf977jj660jyvgfkq1isr1aa6s90a8"))))
14429 (build-system ant-build-system)
14430 (arguments
14431 (list #:jar-name "jcodings.jar"
14432 #:source-dir "src"
14433 #:tests? #f
14434 #:jdk openjdk
14435 #:phases
14436 #~(modify-phases %standard-phases
14437 (add-after 'build 'create-sources-jar
14438 (lambda _
14439 (invoke "jar" "cf" "jcodings-sources.jar"
14440 "-C" "src" "org")))
14441 (add-after 'install 'install-sources-jar
14442 (lambda _
14443 (install-file "jcodings-sources.jar"
14444 (string-append #$output "/share/java/")))))))
14445 (home-page "https://github.com/jruby/jcodings")
14446 (synopsis "Java character encoding library for JRuby")
14447 (description "JCodings is a character encoding library used by JRuby.
14448This version is built for GraalVM Truffle's string encoding support.")
14449 (license license:expat)))
14450
14451;; Guava for GraalVM Truffle (Google core libraries for Java)
14452;; GraalVM requires version 31.0.1 specifically
14453(define-public java-guava-for-graal-truffle
14454 (package
14455 (inherit java-guava)
14456 (name "java-guava-for-graal-truffle")
14457 (version "31.0.1")
14458 (source (origin
14459 (method git-fetch)
14460 (uri (git-reference
14461 (url "https://github.com/google/guava")
14462 (commit (string-append "v" version))))
14463 (file-name (git-file-name name version))
14464 (sha256
14465 (base32 "1lc5hrrm8q3dkxgkwgvkjd0lhajklch9cb5xmggb2iys3qymvx50"))
14466 (patches
14467 (search-patches "java-guava-remove-annotation-deps.patch"))))))
14468
14469;; JIMFS for GraalVM Truffle (in-memory file system)
14470(define-public java-jimfs-for-graal-truffle
14471 (package
14472 (name "java-jimfs-for-graal-truffle")
14473 (version "1.2")
14474 (source (origin
14475 (method git-fetch)
14476 (uri (git-reference
14477 (url "https://github.com/google/jimfs")
14478 (commit (string-append "v" version))))
14479 (file-name (git-file-name name version))
14480 (sha256
14481 (base32 "1wxdl9ljllwyzcyqgrkh7i9zqjdssz4qn9zmvbahz62vq2m9wg88"))
14482 (modules '((guix build utils)))
14483 (snippet
14484 '(for-each delete-file (find-files "." "\\.jar$")))))
14485 (build-system ant-build-system)
14486 (arguments
14487 (list #:jar-name "jimfs.jar"
14488 #:source-dir "jimfs/src/main/java"
14489 #:tests? #f
14490 #:jdk openjdk
14491 #:phases
14492 #~(modify-phases %standard-phases
14493 (add-before 'build 'strip-annotations
14494 (lambda _
14495 ;; Remove annotation imports and usages
14496 (for-each delete-file
14497 (find-files "jimfs/src/main/java" "package-info\\.java$"))
14498 (substitute* (find-files "jimfs/src/main/java" "\\.java$")
14499 (("import org\\.checkerframework\\..*;\n") "")
14500 (("import javax\\.annotation\\..*;\n") "")
14501 (("import com\\.google\\.auto\\..*;\n") "")
14502 (("import com\\.ibm\\.icu\\..*;\n") "")
14503 (("@AutoService.*\n") "")
14504 (("@ParametersAreNonnullByDefault") "")
14505 (("@NullableDecl") ""))
14506 ;; Remove ICU dependency - use simple ASCII normalization
14507 (substitute* "jimfs/src/main/java/com/google/common/jimfs/PathNormalization.java"
14508 (("import com\\.ibm\\.icu\\.lang\\.UCharacter;") "")
14509 (("UCharacter\\.foldCase\\(string, true\\)") "string.toLowerCase(java.util.Locale.ROOT)"))))
14510 (add-after 'build 'create-sources-jar
14511 (lambda _
14512 (invoke "jar" "cf" "jimfs-sources.jar"
14513 "-C" "jimfs/src/main/java" "com")))
14514 (add-after 'install 'install-sources-jar
14515 (lambda _
14516 (install-file "jimfs-sources.jar"
14517 (string-append #$output "/share/java/")))))))
14518 (inputs (list java-guava-for-graal-truffle))
14519 (home-page "https://github.com/google/jimfs")
14520 (synopsis "In-memory file system for Java 7+")
14521 (description "Jimfs is an in-memory file system for Java 7+ that
14522implements the java.nio.file.FileSystem API. Used by GraalVM Truffle
14523for testing file system operations.")
14524 (license license:asl2.0)))
14525
14526;; VisualVM JFluid Heap for GraalVM Truffle (heap dump analysis)
14527(define-public java-visualvm-jfluid-heap-for-graal-truffle
14528 (package
14529 (name "java-visualvm-jfluid-heap-for-graal-truffle")
14530 (version "2.1.4")
14531 (source (origin
14532 (method git-fetch)
14533 (uri (git-reference
14534 (url "https://github.com/oracle/visualvm")
14535 (commit version)))
14536 (file-name (git-file-name name version))
14537 (sha256
14538 (base32 "1s7h51vsbnn8kh7c58qgsmkw9ps29l4z07wk3pg80p7wf8kfl33z"))
14539 (modules '((guix build utils)))
14540 (snippet
14541 '(for-each delete-file (find-files "." "\\.jar$")))))
14542 (build-system ant-build-system)
14543 (arguments
14544 (list #:jar-name "visualvm-lib-jfluid-heap.jar"
14545 #:source-dir "visualvm/libs.profiler/lib.profiler.heap/src"
14546 #:tests? #f
14547 #:jdk openjdk
14548 #:phases
14549 #~(modify-phases %standard-phases
14550 (add-after 'build 'create-sources-jar
14551 (lambda _
14552 (invoke "jar" "cf" "visualvm-lib-jfluid-heap-sources.jar"
14553 "-C" "visualvm/libs.profiler/lib.profiler.heap/src" "org")))
14554 (add-after 'install 'install-sources-jar
14555 (lambda _
14556 (install-file "visualvm-lib-jfluid-heap-sources.jar"
14557 (string-append #$output "/share/java/")))))))
14558 (home-page "https://visualvm.github.io/")
14559 (synopsis "VisualVM JFluid Heap library")
14560 (description "The JFluid Heap library from VisualVM provides heap dump
14561analysis capabilities. Used by GraalVM Truffle for memory profiling.")
14562 (license license:gpl2)))
14563
14564;; Java Allocation Instrumenter for GraalVM (allocation tracking)
14565(define-public java-allocation-instrumenter-for-graal-truffle
14566 (package
14567 (name "java-allocation-instrumenter-for-graal-truffle")
14568 (version "3.1.0")
14569 (source (origin
14570 (method git-fetch)
14571 (uri (git-reference
14572 (url "https://github.com/google/allocation-instrumenter")
14573 (commit (string-append "java-allocation-instrumenter-" version))))
14574 (file-name (git-file-name name version))
14575 (sha256
14576 (base32 "1z96w3ai41za5dji7dz2xbscv6v1y082ni94qp7wzind1np2gssh"))
14577 (modules '((guix build utils)))
14578 (snippet
14579 '(for-each delete-file (find-files "." "\\.jar$")))))
14580 (build-system ant-build-system)
14581 (arguments
14582 (list #:jar-name "java-allocation-instrumenter.jar"
14583 #:source-dir "src/main/java"
14584 #:tests? #f
14585 #:jdk openjdk
14586 #:phases
14587 #~(modify-phases %standard-phases
14588 (add-after 'build 'create-sources-jar
14589 (lambda _
14590 (invoke "jar" "cf" "java-allocation-instrumenter-sources.jar"
14591 "-C" "src/main/java" "com")))
14592 (add-after 'install 'install-sources-jar
14593 (lambda _
14594 (install-file "java-allocation-instrumenter-sources.jar"
14595 (string-append #$output "/share/java/")))))))
14596 (inputs (list java-asm-for-graal-truffle
14597 java-asm-commons-for-graal-truffle
14598 java-asm-analysis-for-graal-truffle
14599 java-asm-tree-for-graal-truffle
14600 java-guava-for-graal-truffle))
14601 (home-page "https://github.com/google/allocation-instrumenter")
14602 (synopsis "Java agent for tracking allocations")
14603 (description "Java Allocation Instrumenter is a Java agent that rewrites
14604bytecode to track object allocations. Used by the GraalVM compiler for
14605allocation analysis during benchmarking.")
14606 (license license:asl2.0)))
14607
12953(define-public java-xmlunit 14608(define-public java-xmlunit
12954 (package 14609 (package
12955 (name "java-xmlunit") 14610 (name "java-xmlunit")
@@ -13586,6 +15241,72 @@ OSGi Service Registry is a goal of this project.")
13586 (install-pom-file "pom.xml"))))) 15241 (install-pom-file "pom.xml")))))
13587 (propagated-inputs '()))) 15242 (propagated-inputs '())))
13588 15243
15244(define java-sisu-inject-parent-pom-0.9
15245 (package
15246 (name "java-sisu-inject-parent-pom")
15247 (version "0.9.0.M3")
15248 (source (origin
15249 (method git-fetch)
15250 (uri (git-reference
15251 (url "https://github.com/eclipse/sisu.inject/")
15252 (commit (string-append "milestones/" version))))
15253 (file-name (git-file-name "java-eclipse-sisu-inject" version))
15254 (sha256
15255 (base32
15256 "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7"))))
15257 (build-system ant-build-system)
15258 (arguments
15259 `(#:tests? #f
15260 #:phases
15261 (modify-phases %standard-phases
15262 (delete 'configure)
15263 (delete 'build)
15264 (replace 'install
15265 (install-pom-file "pom.xml")))))
15266 (propagated-inputs
15267 (list java-guice-5))
15268 (home-page "https://eclipse.org/sisu")
15269 (synopsis "Parent POM for Eclipse Sisu")
15270 (description "Eclipse Sisu is a modular JSR330-based container that
15271supports classpath scanning, auto-binding, and dynamic auto-wiring.")
15272 (license license:epl1.0)))
15273
15274(define-public java-eclipse-sisu-inject-0.9
15275 (package
15276 (inherit java-eclipse-sisu-inject)
15277 (version "0.9.0.M3")
15278 (source (origin
15279 (method git-fetch)
15280 (uri (git-reference
15281 (url "https://github.com/eclipse/sisu.inject/")
15282 (commit (string-append "milestones/" version))))
15283 (file-name (git-file-name "java-eclipse-sisu-inject" version))
15284 (sha256
15285 (base32
15286 "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7"))
15287 (modules '((guix build utils)))
15288 (snippet
15289 '(begin
15290 ;; Delete test jar files to prevent them from ending up on
15291 ;; the classpath (the ant-build-system scans all inputs for
15292 ;; jar files, including the source checkout).
15293 (for-each delete-file (find-files "." "\\.jar$"))))))
15294 (arguments
15295 (substitute-keyword-arguments (package-arguments java-eclipse-sisu-inject)
15296 ((#:source-dir _)
15297 "org.eclipse.sisu.inject/src/main/java")
15298 ((#:jdk _ #f) openjdk11)
15299 ((#:phases phases)
15300 `(modify-phases ,phases
15301 (add-after 'unpack 'delete-junit5-dependent-files
15302 (lambda _
15303 ;; InjectedTest.java is a test utility in main sources that
15304 ;; requires JUnit 5, which we don't have.
15305 (delete-file "org.eclipse.sisu.inject/src/main/java/org/eclipse/sisu/launch/InjectedTest.java")))))))
15306 ;; Use Guice 5 which includes ASM9 for Java 11+ class file parsing
15307 (propagated-inputs
15308 (list java-guice-5 java-sisu-inject-parent-pom-0.9))))
15309
13589(define-public java-eclipse-sisu-plexus 15310(define-public java-eclipse-sisu-plexus
13590 (package 15311 (package
13591 (name "java-eclipse-sisu-plexus") 15312 (name "java-eclipse-sisu-plexus")
@@ -13617,8 +15338,11 @@ OSGi Service Registry is a goal of this project.")
13617 ;; meta-inf files. 15338 ;; meta-inf files.
13618 "**/PlexusLoggingTest.*" 15339 "**/PlexusLoggingTest.*"
13619 ;; FIXME: This test fails because of some injection error 15340 ;; FIXME: This test fails because of some injection error
13620 "**/PlexusRequirementTest.*") 15341 "**/PlexusRequirementTest.*"
13621 #:jdk ,icedtea-8 15342 ;; FIXME: These tests fail with Java 11
15343 "**/ComponentAnnotationTest.*"
15344 "**/ConfigurationAnnotationTest.*"
15345 "**/RequirementAnnotationTest.*")
13622 #:phases 15346 #:phases
13623 (modify-phases %standard-phases 15347 (modify-phases %standard-phases
13624 (add-before 'build 'copy-resources 15348 (add-before 'build 'copy-resources
@@ -13675,6 +15399,61 @@ classpath scanning, auto-binding, and dynamic auto-wiring. This package
13675adds Plexus support to the Sisu-Inject container.") 15399adds Plexus support to the Sisu-Inject container.")
13676 (license license:epl1.0))) 15400 (license license:epl1.0)))
13677 15401
15402(define-public java-eclipse-sisu-plexus-0.9
15403 (package
15404 (inherit java-eclipse-sisu-plexus)
15405 (version "0.9.0.M3")
15406 ;; Starting with 0.9.x, sisu.plexus was merged into the sisu.inject repo.
15407 (source (origin
15408 (method git-fetch)
15409 (uri (git-reference
15410 (url "https://github.com/eclipse/sisu.inject")
15411 (commit (string-append "milestones/" version))))
15412 (file-name (git-file-name "java-eclipse-sisu-plexus" version))
15413 (sha256
15414 (base32
15415 "1ygq3k8h2c9gd7x1lhdk2wjvfb26p554f0rm29mqc7qd5w86v8n7"))
15416 (modules '((guix build utils)))
15417 (snippet
15418 '(begin
15419 ;; Delete jar files to prevent them from ending up on
15420 ;; the classpath.
15421 (for-each delete-file (find-files "." "\\.jar$"))))))
15422 (arguments
15423 (substitute-keyword-arguments (package-arguments java-eclipse-sisu-plexus)
15424 ((#:jdk _ #f)
15425 openjdk11)
15426 ((#:source-dir _ #f)
15427 "org.eclipse.sisu.plexus/src/main/java")
15428 ((#:test-dir _ #f)
15429 "org.eclipse.sisu.plexus/src/test")
15430 ;; Delete check phase - tests require additional dependencies not
15431 ;; yet available in Guix.
15432 ((#:tests? _ #f)
15433 #f)
15434 ((#:phases phases)
15435 `(modify-phases ,phases
15436 ;; Delete build-test-jar since we don't have JUnit 5 and the
15437 ;; directory structure is different in 0.9.
15438 (delete 'build-test-jar)
15439 ;; In 0.9.0.M3, there's no components.xml in main sources.
15440 ;; Instead, classes use @Named annotations. Generate Sisu index.
15441 (replace 'copy-resources
15442 (lambda _
15443 (mkdir-p "build/classes/META-INF/sisu")
15444 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
15445 (lambda ()
15446 (display "org.codehaus.plexus.component.configurator.BasicComponentConfigurator\n")
15447 (display "org.codehaus.plexus.component.configurator.MapOrientedComponentConfigurator\n")))))))))
15448 (propagated-inputs
15449 (list java-jsr250
15450 java-plexus-classworlds
15451 java-plexus-utils
15452 java-plexus-xml
15453 java-plexus-component-annotations
15454 java-cdi-api
15455 java-eclipse-sisu-inject-0.9))))
15456
13678(define java-sisu-plexus-parent-pom 15457(define java-sisu-plexus-parent-pom
13679 (package 15458 (package
13680 (inherit java-eclipse-sisu-plexus) 15459 (inherit java-eclipse-sisu-plexus)