aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2017-11-19 15:01:00 +0100
committerMarius Bakke <mbakke@fastmail.com>2017-11-19 15:01:00 +0100
commit2dd12924cf4a30a96262b6d392fcde58c9f10d4b (patch)
tree3f74f5426ff214a02b8f6652f6516979657a7f98 /gnu/packages/java.scm
parent259b4f34ba2eaefeafdb7c9f9eb56ee77f16010c (diff)
parenta93447b89a5b132221072e729d13a3f17391b8c2 (diff)
downloadguix-2dd12924cf4a30a96262b6d392fcde58c9f10d4b.tar
guix-2dd12924cf4a30a96262b6d392fcde58c9f10d4b.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm766
1 files changed, 647 insertions, 119 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f155fdbabb..bd6c003655 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -27,6 +27,7 @@
#:use-module (guix download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu)
@@ -1563,7 +1564,7 @@ IcedTea build harness.")
(license license:gpl2+))))
(define-public icedtea-8
- (let* ((version "3.5.1")
+ (let* ((version "3.6.0")
(drop (lambda (name hash)
(origin
(method url-fetch)
@@ -1572,7 +1573,7 @@ IcedTea build harness.")
"/icedtea8/" version "/" name ".tar.xz"))
(sha256 (base32 hash))))))
(package (inherit icedtea-7)
- (version "3.5.1")
+ (version "3.6.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1580,7 +1581,7 @@ IcedTea build harness.")
version ".tar.xz"))
(sha256
(base32
- "1j8iv0cdk9fkh3yb5is7z29m9k3s89w6y9090538j6aa7p4nmalf"))
+ "0zj192zrrxqh6j1ywc3399gk2ycay9w8pvzcvvr2kvdkb37ak86h"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1656,34 +1657,34 @@ IcedTea build harness.")
`(("jdk" ,icedtea-7 "jdk")
("openjdk-src"
,(drop "openjdk"
- "0a6yrq8y1zkzc7hm2l28rm3vzy5izfxhmmhhhvc91lhfclnqcd2q"))
+ "0mqxh81kq05z4wydkik0yrr81ibf84xmwsdcw9n2gfrzs4f5jxnb"))
("aarch32-drop"
,(drop "aarch32"
- "0cway5a5hcfyh4pzl9zz5xr7lil4gsliy6r5iqbaasd2d9alvqiq"))
+ "0b207g2n6kn510zf5vwh58bsxgqrmkvrna4p20r74v9cwcwx83n2"))
("corba-drop"
,(drop "corba"
- "031sc6byd8lqvz3cd07phm13pqrxalxk9f3a2q8pim5n4sbsy0qb"))
+ "0qinc1q4w01nkr9klhfyd8caxvyrrfxjrz32nd7kgyja2bj8x7dd"))
("jaxp-drop"
,(drop "jaxp"
- "1815jaj0k0w1s0g0jr1ahkajp1jx2qlb08i6l9ha4wyqqyp49a4n"))
+ "07azrp3g86vk2laybmr5xfn0yrljkxs0rlm1q48385br225bgdxi"))
("jaxws-drop"
,(drop "jaxws"
- "0vh4f85cxhqvabzg86ycpz02519cdzgsn5dr75k22rkmbbxnbbl6"))
+ "018fd2hq57zp3pq06wlxy5pabqcyk36xi8hk0d6xk3a90wsjvyik"))
("jdk-drop"
,(drop "jdk"
- "196ycqz4d9kknc6b219q4ib83l1kkl6w6l1cznw9bzaafyynqa35"))
+ "0vs488kq5j2cc6kplc78jbhfxwq4fn06l34xrbq4d6y17777arg8"))
("langtools-drop"
,(drop "langtools"
- "0ssnadlr5cxhmj06nmni34kdynix1sjhcvjzahm5yzfd7dfllmgy"))
+ "04f6d1wvck5jrpvrcw5gsbzxnihcry9zrf1v85czdm959q21zv9c"))
("hotspot-drop"
,(drop "hotspot"
- "0f7fxf0s9kadvs80hm5ga72pyp9r0fvl8zm1wmd1wrks8kl79sd6"))
+ "1mfgpzyr6zzy9klf8nn3z6d41fydb9ghpfpqzjq3cl95axfbdl1g"))
("nashorn-drop"
,(drop "nashorn"
- "0m95qgnd4z6p0xp9m06ihss7skx2yrm7xw69jsjsrxpriy1shiwy"))
+ "1a26cmzbs50gkh4rmmmxls7zljx62vfp1wq02gsfd5jqs4xvlibj"))
("shenandoah-drop"
,(drop "shenandoah"
- "0yjlcgp6mldp30hmkfl68mdwlbg3gb0m6xd5y7srczni7cln5f3i"))
+ "11hmn9mwmvryfddcanzx3qffjm8bbiv18nwv3iy9cswrvxjy010f"))
,@(fold alist-delete (package-native-inputs icedtea-7)
'("jdk" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop"
"jdk-drop" "langtools-drop" "hotspot-drop")))))))
@@ -1930,15 +1931,15 @@ API and version 2.1 of the Java ServerPages API.")
(define-public java-swt
(package
(name "java-swt")
- (version "4.6")
+ (version "4.7.1a")
(source
;; The types of many variables and procedures differ in the sources
;; dependent on whether the target architecture is a 32-bit system or a
;; 64-bit system. Instead of patching the sources on demand in a build
;; phase we download either the 32-bit archive (which mostly uses "int"
;; types) or the 64-bit archive (which mostly uses "long" types).
- (let ((hash32 "0jmx1h65wqxsyjzs64i2z6ryiynllxzm13cq90fky2qrzagcw1ir")
- (hash64 "0wnd01xssdq9pgx5xqh5lfiy3dmk60dzzqdxzdzf883h13692lgy")
+ (let ((hash32 "09q0cbh90d90q3a7dx9430kc4m6bijrkr4lajrmzzvi0jjdpq4v9")
+ (hash64 "17k5hs75a87ssmc5xhwdfdm2gn4zba0r837l2455za01krnkaa2q")
(file32 "x86")
(file64 "x86_64"))
(let-values (((hash file)
@@ -1948,13 +1949,14 @@ API and version 2.1 of the Java ServerPages API.")
(origin
(method url-fetch)
(uri (string-append
- "http://ftp-stud.fht-esslingen.de/pub/Mirrors/"
- "eclipse/eclipse/downloads/drops4/R-" version
- "-201606061100/swt-" version "-gtk-linux-" file ".zip"))
+ "http://download.eclipse.org/eclipse/downloads/drops4/"
+ "R-" version "-201710090410/swt-" version
+ "-gtk-linux-" file ".zip"))
(sha256 (base32 hash))))))
(build-system ant-build-system)
(arguments
`(#:jar-name "swt.jar"
+ #:jdk ,icedtea-8
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
@@ -1988,8 +1990,7 @@ API and version 2.1 of the Java ServerPages API.")
(find-files "." "\\.so$"))
#t))))))
(inputs
- `(("xulrunner" ,icecat)
- ("gtk" ,gtk+-2)
+ `(("gtk" ,gtk+-2)
("libxtst" ,libxtst)
("libxt" ,libxt)
("mesa" ,mesa)
@@ -2362,6 +2363,183 @@ of Java. It is especially usefull for dynamic loading of application
components.")
(license license:asl2.0)))
+(define-public java-plexus-container-default-bootstrap
+ (package
+ (name "java-plexus-container-default-bootstrap")
+ (version "1.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-containers"
+ "/archive/plexus-containers-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xw5g30qf4a83608rw9v2hv8pfsz7d69dkdhk6r0wia4q78hh1pc"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "container-default.jar"
+ #:source-dir "plexus-container-default/src/main/java"
+ #:test-dir "plexus-container-default/src/test"
+ #:jdk ,icedtea-8
+ #:tests? #f; requires plexus-archiver, which depends on this package
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively
+ "plexus-container-default/src/main/resources/"
+ "build/classes")
+ #t)))))
+ (inputs
+ `(("worldclass" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("utils" ,java-plexus-utils)
+ ("junit" ,java-junit)
+ ("guava" ,java-guava)))
+ (home-page "https://github.com/codehaus-plexus/plexus-containers")
+ (synopsis "Inversion of controll container")
+ (description "Plexus-default-container is Plexus' inversion-of-control
+(IoC) container. It is composed of its public API and its default
+implementation.")
+ (license license:asl2.0)))
+
+(define-public java-plexus-io
+ (package
+ (name "java-plexus-io")
+ (version "3.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-io"
+ "/archive/plexus-io-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0f2j41kihaymxkpbm55smpxjja235vad8cgz94frfy3ppcp021dw"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-io.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (copy-file "src/main/resources/META-INF/plexus/components.xml"
+ "build/classes/META-INF/plexus/components.xml")
+ #t)))))
+ (inputs
+ `(("utils" ,java-plexus-utils)
+ ("commons-io" ,java-commons-io)
+ ("java-jsr305" ,java-jsr305)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)
+ ("guava" ,java-guava)
+ ("classworlds" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("container-default" ,java-plexus-container-default-bootstrap)))
+ (home-page "https://github.com/codehaus-plexus/plexus-io")
+ (synopsis "I/O plexus components")
+ (description "Plexus IO is a set of plexus components, which are designed
+for use in I/O operations. This implementation using plexus components allows
+reusing it in maven.")
+ (license license:asl2.0)))
+
+(define-public java-plexus-archiver
+ (package
+ (name "java-plexus-archiver")
+ (version "3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/plexus-archiver"
+ "/archive/plexus-archiver-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0iv1j7khra6icqh3jndng3iipfmkc7l5jq2y802cm8r575v75pyv"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-archiver.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ #:test-exclude (list "**/Abstract*.java" "**/Base*.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-failing
+ (lambda _
+ ;; Requires an older version of plexus container
+ (delete-file
+ "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (copy-file "src/main/resources/META-INF/plexus/components.xml"
+ "build/classes/META-INF/plexus/components.xml")
+ #t)))))
+ (inputs
+ `(("utils" ,java-plexus-utils)
+ ("commons-io" ,java-commons-io)
+ ("snappy" ,java-iq80-snappy)
+ ("io" ,java-plexus-io)
+ ("compress" ,java-commons-compress)
+ ("container-default" ,java-plexus-container-default-bootstrap)
+ ("snappy" ,java-snappy)
+ ("java-jsr305" ,java-jsr305)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("classworld" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("xz" ,java-tukaani-xz)
+ ("guava" ,java-guava)))
+ (home-page "https://github.com/codehaus-plexus/plexus-archiver")
+ (synopsis "Archiver component of the Plexus project")
+ (description "Plexus-archiver contains a component to deal with project
+archives (jar).")
+ (license license:asl2.0)))
+
+(define-public java-plexus-container-default
+ (package
+ (inherit java-plexus-container-default-bootstrap)
+ (name "java-plexus-container-default")
+ (arguments
+ `(#:jar-name "container-default.jar"
+ #:source-dir "plexus-container-default/src/main/java"
+ #:test-dir "plexus-container-default/src/test"
+ #:test-exclude (list ;"**/*Test.java"
+ "**/Abstract*.java"
+ ;; Requires plexus-hierarchy
+ "**/PlexusHierarchyTest.java"
+ ;; Failures
+ "**/ComponentRealmCompositionTest.java"
+ "**/PlexusContainerTest.java")
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively
+ "plexus-container-default/src/main/resources/"
+ "build/classes")
+ #t))
+ (add-before 'check 'fix-paths
+ (lambda _
+ (let ((dir "plexus-container-default/src/test/java/org/codehaus"))
+ (substitute*
+ (string-append
+ dir "/plexus/component/composition/"
+ "ComponentRealmCompositionTest.java")
+ (("src/test") "plexus-container-default/src/test"))
+ #t))))))
+ (inputs
+ `(("worldclass" ,java-plexus-classworlds)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("utils" ,java-plexus-utils)
+ ("junit" ,java-junit)
+ ("guava" ,java-guava)))
+ (native-inputs
+ `(("archiver" ,java-plexus-archiver)
+ ("hamcrest" ,java-hamcrest-core)))))
+
(define-public java-asm
(package
(name "java-asm")
@@ -2849,6 +3027,80 @@ are many features, including:
@end itemize\n")
(license license:asl2.0)))
+(define-public java-commons-collections
+ (package
+ (inherit java-commons-collections4)
+ (name "java-commons-collections")
+ (version "3.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/collections/source/"
+ "commons-collections-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments java-commons-collections4)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; The manifest is required by the build procedure
+ (add-before 'build 'add-manifest
+ (lambda _
+ (mkdir-p "build/conf")
+ (call-with-output-file "build/conf/MANIFEST.MF"
+ (lambda (file)
+ (format file "Manifest-Version: 1.0\n")))))
+ (replace 'install
+ (install-jars "build"))))))))
+
+(define java-commons-collections-test-classes
+ (package
+ (inherit java-commons-collections)
+ (arguments
+ `(#:jar-name "commons-collections-test-classes.jar"
+ #:source-dir "src/test"
+ #:tests? #f))
+ (inputs
+ `(("collection" ,java-commons-collections)))))
+
+(define-public java-commons-beanutils
+ (package
+ (name "java-commons-beanutils")
+ (version "1.9.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/beanutils/source/"
+ "commons-beanutils-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "03cs0bq3sl1sdc7py9g3qnf8n9h473nrkvd3d251kaqv6a2ab7qk"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (rename-file (string-append "dist/commons-beanutils-" ,version
+ "-SNAPSHOT.jar")
+ "commons-beanutils.jar")
+ (install-file "commons-beanutils.jar"
+ (string-append (assoc-ref outputs "out") "/share/java/"))
+ #t)))))
+ (inputs
+ `(("logging" ,java-commons-logging-minimal)
+ ("collections" ,java-commons-collections)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("collections-test" ,java-commons-collections-test-classes)))
+ (home-page "http://commons.apache.org/beanutils/")
+ (synopsis "Dynamically set or get properties in Java")
+ (description "BeanUtils provides a simplified interface to reflection and
+introspection to set or get dynamically determined properties through their
+setter and getter method.")
+ (license license:asl2.0)))
+
(define-public java-commons-io
(package
(name "java-commons-io")
@@ -3412,32 +3664,43 @@ working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ,
Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.")
(license license:asl2.0)))
-(define-public java-commons-net
+(define-public java-commons-csv
(package
- (name "java-commons-net")
- (version "3.6")
+ (name "java-commons-csv")
+ (version "1.4")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://apache/commons/net/source/"
- "commons-net-" version "-src.tar.gz"))
+ (uri (string-append "mirror://apache/commons/csv/source/"
+ "commons-csv-" version "-src.tar.gz"))
(sha256
(base32
- "0n0cmnddk9qdqhjvka8pc6hd9mn2qi3166f1s6xk32h7rfy1adxr"))))
+ "1l89m0fm2s3xx3v3iynvangymfg2vlyngaj6fgsi457nmsw7m7ij"))))
(build-system ant-build-system)
(arguments
- `(;; FIXME: MainTest.java tries to read "examples.properties" (which
- ;; should be "resources/examples/examples.properties"), but gets "null"
- ;; instead.
- #:tests? #f
- #:jar-name "commons-net.jar"))
- (native-inputs
- `(("java-junit" ,java-junit)
- ("java-hamcrest-core" ,java-hamcrest-core)))
- (home-page "http://commons.apache.org/net/")
- (synopsis "Client library for many basic Internet protocols")
- (description "The Apache Commons Net library implements the client side of
-many basic Internet protocols. The purpose of the library is to provide
-fundamental protocol access, not higher-level abstractions.")
+ `(#:jar-name "commons-csv.jar"
+ #:source-dir "src/main/java"
+ #:tests? #f)); FIXME: requires java-h2
+ (inputs
+ `(("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("junit" ,java-junit)))
+ (home-page "https://commons.apache.org/proper/commons-csv/")
+ (synopsis "Read and write CSV documents")
+ (description "Commons CSV reads and writes files in variations of the Comma
+Separated Value (CSV) format. The most common CSV formats are predefined in the
+CSVFormat class:
+
+@itemize
+@item Microsoft Excel
+@item Informix UNLOAD
+@item Informix UNLOAD CSV
+@item MySQL
+@item RFC 4180
+@item TDF
+@end itemize
+
+Custom formats can be created using a fluent style API.")
(license license:asl2.0)))
(define-public java-osgi-annotation
@@ -4127,6 +4390,68 @@ JavaMail API.")
Java.")
(license license:asl2.0)))
+(define-public java-log4j-core
+ (package
+ (inherit java-log4j-api)
+ (name "java-log4j-core")
+ (inputs
+ `(("java-osgi-core" ,java-osgi-core)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-log4j-api" ,java-log4j-api)
+ ("java-mail" ,java-mail)
+ ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
+ ("java-lmax-disruptor" ,java-lmax-disruptor)
+ ("java-kafka" ,java-kafka-clients)
+ ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
+ ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
+ ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
+ ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
+ ("java-fasterxml-jackson-dataformat-xml" ,java-fasterxml-jackson-dataformat-xml)
+ ("java-fasterxml-jackson-dataformat-yaml" ,java-fasterxml-jackson-dataformat-yaml)
+ ("java-commons-compress" ,java-commons-compress)
+ ("java-commons-csv" ,java-commons-csv)
+ ("java-jeromq" ,java-jeromq)
+ ("java-junit" ,java-junit)))
+ (native-inputs
+ `(("hamcrest" ,java-hamcrest-all)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("slf4j" ,java-slf4j-api)))
+ (arguments
+ `(#:tests? #f ; tests require more dependencies
+ #:test-dir "src/test"
+ #:source-dir "src/main/java"
+ #:jar-name "log4j-core.jar"
+ #:jdk ,icedtea-8
+ #:make-flags
+ (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
+ "/share/java"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-dir
+ (lambda _ (chdir "log4j-core") #t)))))
+ (synopsis "Core component of the Log4j framework")
+ (description "This package provides the core component of the Log4j
+logging framework for Java.")))
+
+(define-public java-log4j-1.2-api
+ (package
+ (inherit java-log4j-api)
+ (name "java-log4j-1.2-api")
+ (arguments
+ `(#:jar-name "java-log4j-1.2-api.jar"
+ #:source-dir "log4j-1.2-api/src/main/java"
+ #:jdk ,icedtea-8
+ ;; Tests require maven-model (and other maven subprojects), which is a
+ ;; cyclic dependency.
+ #:tests? #f))
+ (inputs
+ `(("log4j-api" ,java-log4j-api)
+ ("log4j-core" ,java-log4j-core)
+ ("osgi-core" ,java-osgi-core)
+ ("eclipse-osgi" ,java-eclipse-osgi)
+ ("java-lmax-disruptor" ,java-lmax-disruptor)))))
+
(define-public java-commons-cli
(package
(name "java-commons-cli")
@@ -4655,55 +4980,60 @@ tree walking, and translation.")
"0qgg5vgsm4l1d6dj9pfbaa25dpv2ry2gny8ajy4vvgvfklw97b3m"))))
(arguments
`(#:jar-name (string-append ,name "-" ,version ".jar")
- #:source-dir (string-append "tool/src/main/java:runtime/Java/src/main/java:"
- "tool/src/main/antlr2:tool/src/main/antlr3")
- #:tests? #f
+ #:source-dir (string-join '("tool/src/main/java"
+ "runtime/Java/src/main/java"
+ "tool/src/main/antlr2"
+ "tool/src/main/antlr3")
+ ":")
+ #:tests? #f ; FIXME: tests seem to require maven plugin
+ #:modules ((guix build ant-build-system)
+ (guix build utils)
+ (srfi srfi-1))
#:phases
(modify-phases %standard-phases
(add-after 'install 'bin-install
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((jar (string-append (assoc-ref outputs "out") "/share/java"))
- (bin (string-append (assoc-ref outputs "out") "/bin")))
+ (let* ((out (assoc-ref outputs "out"))
+ (jar (string-append out "/share/java"))
+ (bin (string-append out "/bin")))
(mkdir-p bin)
(with-output-to-file (string-append bin "/antlr3")
(lambda _
(display
- (string-append "#!" (which "sh") "\n"
- "java -cp " jar "/antlr3-3.3.jar:"
- (string-concatenate
- (find-files (assoc-ref inputs "java-stringtemplate")
- ".*\\.jar"))
- ":"
- (string-concatenate
- (find-files (string-append
- (assoc-ref inputs "antlr")
- "/lib")
- ".*\\.jar"))
- " org.antlr.Tool $*"))))
- (chmod (string-append bin "/antlr3") #o755))))
+ (string-append
+ "#!" (which "sh") "\n"
+ "java -cp " jar "/antlr3-3.3.jar:"
+ (string-join
+ (append (find-files (assoc-ref inputs "java-stringtemplate")
+ ".*\\.jar$")
+ (find-files (string-append (assoc-ref inputs "antlr")
+ "/lib")
+ ".*\\.jar$"))
+ ":")
+ " org.antlr.Tool $*"))))
+ (chmod (string-append bin "/antlr3") #o755)
+ #t)))
(add-before 'build 'generate-grammar
(lambda _
- (let ((dir "tool/src/main/antlr2/org/antlr/grammar/v2/"))
- (for-each (lambda (file)
- (display file)
- (newline)
- (system* "antlr" "-o" dir (string-append dir file)))
- '("antlr.g" "antlr.print.g" "assign.types.g"
- "buildnfa.g" "codegen.g" "define.g")))
- (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
- (for-each (lambda (file)
- (display file)
- (newline)
- (system* "antlr3" file))
- '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
- "ANTLRv3Tree.g"))
- (chdir "../../../../../../../..")
(substitute* "tool/src/main/java/org/antlr/tool/Grammar.java"
(("import org.antlr.grammar.v2.\\*;")
"import org.antlr.grammar.v2.*;\n
import org.antlr.grammar.v2.TreeToNFAConverter;\n
import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n
-import org.antlr.grammar.v2.ANTLRTreePrinter;"))))
+import org.antlr.grammar.v2.ANTLRTreePrinter;"))
+ (and
+ (with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
+ (every (lambda (file)
+ (format #t "~a\n" file)
+ (zero? (system* "antlr" file)))
+ '("antlr.g" "antlr.print.g" "assign.types.g"
+ "buildnfa.g" "codegen.g" "define.g")))
+ (with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
+ (every (lambda (file)
+ (format #t "~a\n" file)
+ (zero? (system* "antlr3" file)))
+ '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
+ "ANTLRv3Tree.g"))))))
(add-before 'build 'fix-build-xml
(lambda _
(substitute* "build.xml"
@@ -4714,7 +5044,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))))
<include name=\"**/*.sti\"/>
<include name=\"**/STLexer.tokens\"/>
</fileset>
-</copy><exec")))))))
+</copy><exec"))
+ #t)))))
(native-inputs
`(("antlr" ,antlr2)
("antlr3" ,antlr3-3.1)))
@@ -4795,50 +5126,6 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))))
(propagated-inputs
`(("stringtemplate" ,java-stringtemplate-3)))))
-(define-public java-asm
- (package
- (name "java-asm")
- (version "5.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://download.forge.ow2.org/asm/"
- "asm-" version ".tar.gz"))
- (sha256
- (base32
- "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr"))))
- (build-system ant-build-system)
- (arguments
- `(#:build-target "compile"
- #:test-target "test"
- ;; The tests require an old version of Janino, which no longer compiles
- ;; with the JDK7.
- #:tests? #f
- ;; We don't need these extra ant tasks, but the build system asks us to
- ;; provide a path anyway.
- #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'install 'build-jars
- (lambda* (#:key make-flags #:allow-other-keys)
- ;; We cannot use the "jar" target because it depends on a couple
- ;; of unpackaged, complicated tools.
- (mkdir "dist")
- (zero? (system* "jar"
- "-cf" (string-append "dist/asm-" ,version ".jar")
- "-C" "output/build/tmp" "."))))
- (replace 'install
- (install-jars "dist")))))
- (native-inputs
- `(("java-junit" ,java-junit)))
- (home-page "http://asm.ow2.org/")
- (synopsis "Very small and fast Java bytecode manipulation framework")
- (description "ASM is an all purpose Java bytecode manipulation and
-analysis framework. It can be used to modify existing classes or dynamically
-generate classes, directly in binary form. The provided common
-transformations and analysis algorithms allow to easily assemble custom
-complex transformations and code analysis tools.")
- (license license:bsd-3)))
-
(define-public java-commons-cli-1.2
;; This is a bootstrap dependency for Maven2.
(package
@@ -6949,3 +7236,244 @@ done to the IDE or continuous integration servers which simplifies adoption.")
("reflect" ,java-powermock-reflect)
("support" ,java-powermock-api-support)
("cglib" ,java-cglib)))))
+
+(define-public java-jboss-jms-api-spec
+ (package
+ (name "java-jboss-jms-api-spec")
+ (version "2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jboss/jboss-jms-api_spec/"
+ "archive/jboss-jms-api_" version
+ "_spec-1.0.1.Final.tar.gz"))
+ (sha256
+ (base32
+ "07bqblw9kq2i8q92bz70fvavq5xjfkaixl8xa0m0cypjgy82rb7m"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jboss-jms-api_spec.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "."
+ #:tests? #f)); no tests
+ (home-page "https://github.com/jboss/jboss-jms-api_spec")
+ (synopsis "Java Message Service API specification")
+ (description "Java Message Service (JMS) API is used to send messages
+messages between two or more clients. It is a messaging standard that allows
+application components to create, send, receive, and read messages.")
+ ; either gpl2 only with GPL Classpath Exception, or cddl.
+ (license (list license:gpl2 license:cddl1.0))))
+
+(define-public java-mail
+ (package
+ (name "java-mail")
+ (version "1.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/javaee/javamail/archive/"
+ "JAVAMAIL-1_6_0.tar.gz"))
+ (sha256
+ (base32
+ "1b4rg7fpj50ld90a71iz2m4gm3f5cnw18p3q3rbrrryjip46kx92"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-mail.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "mail/src/main/java"
+ #:test-dir "mail/src/test"
+ #:test-exclude
+ (list "**/CollectorFormatterTest.java"
+ "**/CompactFormatterTest.java"
+ "**/DurationFilterTest.java"
+ "**/MailHandlerTest.java"
+ "**/GetLocalAddressTest.java"
+ ;; FIXME: both end with:
+ ;; java.lang.ClassNotFoundException:
+ ;; javax.mail.internet.MimeMultipartParseTest
+ "**/MimeMultipartParseTest.java"
+ "**/SearchTermSerializationTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'move-version.java
+ (lambda _
+ (copy-file "mail/src/main/resources/javax/mail/Version.java"
+ "mail/src/main/java/javax/mail/Version.java")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "mail/src/main/resources/META-INF"
+ "build/classes/META-INF")
+ #t)))))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://javaee.github.io/javamail/")
+ (synopsis "Mail-related functionnalities in Java")
+ (description "The JavaMail API provides a platform-independent and
+protocol-independent framework to build mail and messaging applications.")
+ ;; General Public License Version 2 only ("GPL") or the Common Development
+ ;; and Distribution License("CDDL")
+ (license (list license:cddl1.1
+ license:gpl2)))); with classpath exception
+
+(define-public java-jeromq
+ (package
+ (name "java-jeromq")
+ (version "0.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/zeromq/jeromq/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17wx8dlyqmbw77xf6d6wxnhiyky6181zpf1a48jqzz9hidz0j841"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jeromq.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-exclude
+ (list
+ "**/Abstract*.java"
+ ;; Requires network
+ "**/ZBeaconTest.java"
+ ;; Failures
+ "**/CustomDecoderTest.java"
+ "**/CustomEncoderTest.java")))
+ (inputs
+ `(("java-jnacl" ,java-jnacl)))
+ (native-inputs
+ `(("java-hamcrest-core" ,java-hamcrest-core)
+ ("junit" ,java-junit)))
+ (home-page "http://zeromq.org/bindings:java")
+ (synopsis "Java binding for 0MQ")
+ (description "Jeromq provides the java bindings for 0MQ.")
+ (license license:mpl2.0)))
+
+(define-public java-kafka-clients
+ (package
+ (name "java-kafka-clients")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/kafka/" version "/kafka-"
+ version "-src.tgz"))
+ (sha256
+ (base32
+ "1yxmnsmliwm7671q5yy9bl4jdqyyn00n26cggz9brwczx80w1vfq"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-kafka-clients.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "clients/src/main/java"
+ #:test-dir "clients/src/test"
+ #:test-exclude
+ (list
+ ;; This file does not contain a class
+ "**/IntegrationTest.java"
+ ;; Requires network
+ "**/ClientUtilsTest.java"
+ ;; End with errors that seem related to our powermock
+ "**/KafkaProducerTest.java"
+ "**/BufferPoolTest.java")))
+ (inputs
+ `(("java-slf4j-api" ,java-slf4j-api)
+ ("java-lz4" ,java-lz4)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-all)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)
+ ("cglib" ,java-cglib)
+ ("javassist" ,java-jboss-javassist)
+ ("snappy" ,java-snappy)
+ ("easymock" ,java-easymock)
+ ("powermock" ,java-powermock-core)
+ ("powermock-easymock" ,java-powermock-api-easymock)
+ ("powermock-junit4-common" ,java-powermock-modules-junit4-common)
+ ("powermock-junit4" ,java-powermock-modules-junit4)
+ ("powermock-support" ,java-powermock-api-support)
+ ("bouncycastle" ,java-bouncycastle-bcprov)
+ ("bouncycastle-bcpkix" ,java-bouncycastle-bcpkix)))
+ (home-page "https://kafka.apache.org")
+ (synopsis "Distributed streaming platform")
+ (description "Kafka is a distributed streaming platform, which means:
+@itemize
+@item it can publish and subscribe to streams of records;
+@item it can store streams of records in a fault-tolerant way;
+@item it can process streams of records as they occur.
+@end itemize")
+ ;; Either cddl or gpl2 only.
+ (license (list license:cddl1.1; actually cddl1.1
+ license:gpl2)))); with classpath exception
+
+(define-public java-jdom
+ (package
+ (name "java-jdom")
+ (version "1.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://jdom.org/dist/binary/archive/jdom-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07wdpm3jwwc9q38kmdw40fvbmv6jzjrkrf8m0zqs58f79a672wfl"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "package"
+ #:tests? #f; tests are run as part of the build process
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (install-jars "build")))))
+ (home-page "http://jdom.org/")
+ (synopsis "Access, manipulate, and output XML data")
+ (description "Java-based solution for accessing, manipulating, and
+outputting XML data from Java code.")
+ (license license:bsd-4)))
+
+(define-public java-geronimo-xbean-reflect
+ (package
+ (name "java-geronimo-xbean-reflect")
+ (version "4.5")
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "https://svn.apache.org/repos/asf/geronimo/xbean/tags/xbean-4.5/")
+ (revision 1807396)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "18q3i6jgm6rkw8aysfgihgywrdc5nvijrwnslmi3ww497jvri6ja"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "geronimo-xbean-reflect.jar"
+ #:source-dir "xbean-reflect/src/main/java"
+ #:test-dir "xbean-reflect/src/test"
+ #:jdk ,icedtea-8
+ #:test-exclude
+ (list "**/Abstract*.java" "**/AsmParameterNameLoaderTest.java"
+ "**/ObjectRecipeTest.java" "**/ParameterNameLoaderTest.java"
+ "**/RecipeHelperTest.java" "**/XbeanAsmParameterNameLoaderTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-source
+ (lambda _
+ (let ((dir "xbean-reflect/src/main/java/org/apache/xbean/recipe/"))
+ ;; org.apache.xbean.asm6 is actually repackaged java-asm
+ (substitute* (string-append dir "XbeanAsmParameterNameLoader.java")
+ (("org.apache.xbean.asm5") "org.objectweb.asm"))
+ #t))))))
+ (inputs
+ `(("asm" ,java-asm)
+ ("log4j" ,java-log4j-api)
+ ("log4j-1.2" ,java-log4j-1.2-api)
+ ("log4j-core" ,java-log4j-core)
+ ("logging" ,java-commons-logging-minimal)))
+ (native-inputs
+ `(("junit" ,java-junit)))
+ (home-page "https://geronimo.apache.org/maven/xbean/3.6/xbean-reflect/")
+ (synopsis "Dependency injection helper")
+ (description "Xbean-reflect provides very flexible ways to create objects
+and graphs of objects for dependency injection frameworks")
+ (license license:asl2.0)))