;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
(license license:gpl2+)))
(define-public icedtea-7
- (let* ((version "2.6.11")
+ (let* ((version "2.6.12")
(drop (lambda (name hash)
(origin
(method url-fetch)
version ".tar.xz"))
(sha256
(base32
- "1ibp6ybqnf8g7mbs45bkbv44dwz4h2w9gr4rh15yvr1m8lqkq1i0"))
+ "0s0zh0mj1sab99kb516lsgq3859vsc951phc565gwix4l5g9zppk"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile.in"
(native-inputs
`(("openjdk-src"
,(drop "openjdk"
- "1zhr4l9kxnbzghcsgjk3vmih9qpg1wrr9qry7fx04l97svp1ylhd"))
+ "15qf3nfidgnigh2zny6djfp8bhfwjnwk9i06mxs2jbq6na953ql2"))
("corba-drop"
,(drop "corba"
- "108v15ncb2rnsyzgzncjlm1f57d1sv60zd9qbpas8kqmvpp8r0gz"))
+ "1phvn8fyl5mw2n2sn97f17nm442k75xsz2023bfw4h66ywzkqhqy"))
("jaxp-drop"
,(drop "jaxp"
- "0zcpcmm3g1s7m31glrbw3ys7azi97ixcvbyxd40y9xzdja3jyr52"))
+ "0j4ms6lmnfa2cwfh9yfqdfg1bnn3fc40ay4x6k8zqa8yvspik5w5"))
("jaxws-drop"
,(drop "jaxws"
- "1gkqm0p3sr8d0xpki3fhf7cvmgqxx8ambgl5f3jx2plfnhsg96d2"))
+ "09sddj73k7n29s39hvdk14r130mvlknbxkpd2w58f34sq5sgpdrg"))
("jdk-drop"
,(drop "jdk"
- "1d9fjnzdx4m6gwkvmj2n097ag0mvkhm3lldaxjki8x8c6a5clknf"))
+ "0q896zz8wyswmksy225q1k27nz3v3l27052dcvvpv20ryykz8yp7"))
("langtools-drop"
,(drop "langtools"
- "0zscdp9arcq7gr8j7jq4m75gq0w1i3ryxpdnrc8fl0msh4w2s2k5"))
+ "0niicyfccim4a9is4akh87jd7wbl8jrazdaab957mcv9l1x3bnqc"))
("hotspot-drop"
,(drop "hotspot"
- "1y6vnssn5y50x27g4ypdb5wwpmi7zf7jdi8gqbymkwf6n8p5y1d6"))
+ "1jw42qhbm3wfavk39304m53lmqipcllrvjqiab2f42mjs10i8gfx"))
("ant" ,ant-bootstrap)
("attr" ,attr)
("coreutils" ,coreutils)
(native-inputs
`(("jdk" ,icedtea-7 "jdk")))))
+(define-public ant-apache-bcel
+ (package
+ (inherit ant/java8)
+ (name "ant-apache-bcel")
+ (arguments
+ (substitute-keyword-arguments (package-arguments ant/java8)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'link-bcel
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (symlink file
+ (string-append "lib/optional/"
+ (basename file))))
+ (find-files (assoc-ref inputs "java-commons-bcel")
+ "\\.jar$"))
+ #t))
+ (add-after 'build 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share/java"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib")))
+ (mkdir-p share)
+ (install-file (string-append lib "/ant-apache-bcel.jar") share)
+ (delete-file-recursively bin)
+ (delete-file-recursively lib)
+ #t)))))))
+ (inputs
+ `(("java-commons-bcel" ,java-commons-bcel)
+ ,@(package-inputs ant/java8)))))
+
+(define-public ant-junit
+ (package
+ (inherit ant/java8)
+ (name "ant-junit")
+ (arguments
+ (substitute-keyword-arguments (package-arguments ant/java8)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'link-junit
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (symlink file
+ (string-append "lib/optional/"
+ (basename file))))
+ (find-files (assoc-ref inputs "java-junit")
+ "\\.jar$"))
+ #t))
+ (add-after 'build 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share/java"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib")))
+ (mkdir-p share)
+ (install-file (string-append lib "/ant-junit.jar") share)
+ (delete-file-recursively bin)
+ (delete-file-recursively lib)
+ #t)))))))
+ (inputs
+ `(("java-junit" ,java-junit)
+ ,@(package-inputs ant/java8)))))
+
(define-public clojure
(let* ((remove-archives '(begin
(for-each delete-file
(snippet remove-archives)))))
(package
(name "clojure")
- (version "1.8.0")
+ (version "1.9.0")
(source
(origin
(method url-fetch)
(uri
- (string-append "http://repo1.maven.org/maven2/org/clojure/clojure/"
- version "/clojure-" version ".zip"))
+ (string-append "https://github.com/clojure/clojure/archive/clojure-"
+ version ".tar.gz"))
(sha256
- (base32 "1nip095fz5c492sw15skril60i1vd21ibg6szin4jcvyy3xr6cym"))
+ (base32 "0xjbzcw45z32vsn9pifp7ndysjzqswp5ig0jkjpivigh2ckkdzha"))
(modules '((guix build utils)))
(snippet remove-archives)))
(build-system ant-build-system)
(error "failed to unpack tarball" name)))
(copy-recursively (string-append name "/src/main/clojure/")
"src/clj/"))
- '("data-generators-src"
- "java-classpath-src"
+ '("core-specs-alpha-src"
+ "data-generators-src"
+ "spec-alpha-src"
"test-check-src"
"test-generative-src"
- "tools-namespace-src"
- "tools-reader-src"))
+ "tools-namespace-src"))
#t))
;; The javadoc target is not built by default.
(add-after 'build 'build-doc
#t))))))
;; The native-inputs below are needed to run the tests.
(native-inputs
- `(("data-generators-src"
+ `(("core-specs-alpha-src"
+ ,(submodule "core.specs.alpha/archive/core.specs.alpha-"
+ "0.1.24"
+ "0v2a0svf1ar2y42ajxwsjr7zmm5j7pp2zwrd2jh3k7xzd1p9x1fv"))
+ ("data-generators-src"
,(submodule "data.generators/archive/data.generators-"
"0.1.2"
"0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1"))
- ("java-classpath-src"
- ,(submodule "java.classpath/archive/java.classpath-"
- "0.2.3"
- "0sjymly9xh1lkvwn5ygygpsfwz4dabblnlq0c9bx76rkvq62fyng"))
+ ("spec-alpha-src"
+ ,(submodule "spec.alpha/archive/spec.alpha-"
+ "0.1.143"
+ "00alf0347licdn773w2jarpllyrbl52qz4d8mw61anjksacxylzz"))
("test-check-src"
,(submodule "test.check/archive/test.check-"
"0.9.0"
("tools-namespace-src"
,(submodule "tools.namespace/archive/tools.namespace-"
"0.2.11"
- "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0"))
- ("tools-reader-src"
- ,(submodule "tools.reader/archive/tools.reader-"
- "1.0.0"
- "1lafblmmj4hkg0aqrf19qkdw9wdcsh3qxmn6cbkmnzbhffpyv2lv"))))
+ "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0"))))
(home-page "https://clojure.org/")
(synopsis "Lisp dialect running on the JVM")
(description "Clojure is a dynamic, general-purpose programming language,
license:asl2.0
license:cpl1.0)))))
+(define-public javacc
+ (package
+ (name "javacc")
+ (version "7.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/javacc/javacc/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append "javacc-" version ".tar.gz"))
+ (sha256
+ (base32
+ "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-bundled-libs
+ (lambda _
+ (delete-file-recursively "lib") #t))
+ (replace 'install (install-jars "target")))))
+ (home-page "https://javacc.org/")
+ (synopsis "Java parser generator")
+ (description "Java Compiler Compiler (JavaCC) is the most popular parser
+generator for use with Java applications. A parser generator is a tool that
+reads a grammar specification and converts it to a Java program that can
+recognize matches to the grammar. In addition to the parser generator itself,
+JavaCC provides other standard capabilities related to parser generation such
+as tree building (via a tool called JJTree included with JavaCC), actions,
+debugging, etc.")
+ (license license:bsd-3)))
+
+(define-public javacc-4
+ (package (inherit javacc)
+ (version "4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/javacc/javacc.git")
+ (commit "release_41")))
+ (file-name (string-append "javacc-" version "-checkout"))
+ (sha256
+ (base32
+ "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0"))))
+ ;; Tests fail with
+ ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60:
+ ;; JAVACODE failed
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-bundled-libs
+ (lambda _
+ (delete-file-recursively "lib") #t))
+ (replace 'install (install-jars "bin/lib")))))))
+
(define-public java-classpathx-servletapi
(package
(name "java-classpathx-servletapi")
(lambda _ (chdir "..") #t)))))
(native-inputs
`(("unzip" ,unzip)))
- (home-page "http://tukaani.org/xz/java.html")
+ (home-page "https://tukaani.org/xz/java.html")
(synopsis "Implementation of XZ data compression in pure Java")
(description "This library aims to be a complete implementation of XZ data
compression in pure Java. Single-threaded streamed compression and
`(("java-junit" ,java-junit)))
(home-page "http://codehaus-plexus.github.io/plexus-classworlds/")
(synopsis "Java class loader framework")
- (description "Plexus classworlds replaces the native ClassLoader mechanism
-of Java. It is especially usefull for dynamic loading of application
+ (description "Plexus classworlds replaces the native @code{ClassLoader}
+mechanism of Java. It is especially useful for dynamic loading of application
components.")
(license license:asl2.0)))
("junit" ,java-junit)
("guava" ,java-guava)))
(home-page "https://github.com/codehaus-plexus/plexus-containers")
- (synopsis "Inversion of controll container")
+ (synopsis "Inversion-of-control container")
(description "Plexus-default-container is Plexus' inversion-of-control
-(IoC) container. It is composed of its public API and its default
+(@dfn{IoC}) container. It is composed of its public API and its default
implementation.")
(license license:asl2.0)))
(synopsis "Benchmark harness for the JVM")
(description "JMH is a Java harness for building, running, and analysing
nano/micro/milli/macro benchmarks written in Java and other languages
-targetting the JVM.")
+targeting the JVM.")
;; GPLv2 only
(license license:gpl2)))
(arguments
`(#:tests? #f ; no tests
#:jar-name "osgi-annotation.jar"))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Annotation module of OSGi framework")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:jar-name "osgi-core.jar"))
(inputs
`(("java-osgi-annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Core module of OSGi framework")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("java-osgi-annotation" ,java-osgi-annotation)
("java-osgi-core" ,java-osgi-core)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGi service event module")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
("microemulator" ,java-microemulator-cldc)
("servlet" ,java-classpathx-servletapi)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Compendium specification module of OSGi framework")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Support annotations for osgi-service-component")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Data Transfer Objects")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("annotation" ,java-osgi-annotation)
("dto" ,java-osgi-dto)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI Resource")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(arguments
`(#:jar-name "osgi-namespace-contract.jar"
#:tests? #f)); no tests
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Contract Capability and Requirement Namespace")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(arguments
`(#:jar-name "osgi-namespace-extendent.jar"
#:tests? #f)); no tests
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Extender Capability and Requirement Namespace")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(arguments
`(#:jar-name "osgi-namespace-service.jar"
#:tests? #f)); no tests
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Service Capability and Requirement Namespace")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI Util Function")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("annotation" ,java-osgi-annotation)
("function" ,java-osgi-util-function)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Promise of a value")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Support annotations for metatype")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
`(("annotation" ,java-osgi-annotation)
("promise" ,java-osgi-util-promise)
("resource" ,java-osgi-resource)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI service repository")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
`(("annotation" ,java-osgi-annotation)
("resource" ,java-osgi-resource)
("dto" ,java-osgi-dto)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGi framework")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("java-osgi-framework" ,java-osgi-framework)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Provides methods for bundles to write messages to the log")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(arguments
`(#:jar-name "osgi-service-jdbc.jar"
#:tests? #f)); no tests
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Factory for JDBC connection factories")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("annotation" ,java-osgi-annotation)
("resource" ,java-osgi-resource)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI Resolver service")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("framework" ,java-osgi-framework)
("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "Bundle tracking")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(inputs
`(("framework" ,java-osgi-framework)
("annotation" ,java-osgi-annotation)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI Configuration Management")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
#:tests? #f)); no tests
(inputs
`(("framework" ,java-osgi-framework)))
- (home-page "http://www.osgi.org")
+ (home-page "https://www.osgi.org")
(synopsis "OSGI Package Administration")
(description
"OSGi, for Open Services Gateway initiative framework, is a module system
(define-public java-fasterxml-jackson-annotations
(package
(name "java-fasterxml-jackson-annotations")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-annotations-" version ".tar.gz"))
(sha256
(base32
- "005ksgqx2ds3zdmlvbcmmz82y28b1mx0i9bpvprim1jaddbba0bd"))))
+ "0b4wdxjxfbl3gkilylfdbl7fzimfpyih676jiwdf19i4056j8lqw"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-annotations.jar"
(define-public java-fasterxml-jackson-core
(package
(name "java-fasterxml-jackson-core")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-core-" version ".tar.gz"))
(sha256
(base32
- "1sdfp74zvlh4xr5h5bj87yjlp6kny3i8ai9m0q3xs7f8hvmxpx09"))))
+ "0q2d6qnylyxj5jh0sam1b095b5486f7ipzhxgwcgbm254ls7fqc1"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-core.jar"
(define-public java-fasterxml-jackson-databind
(package
(name "java-fasterxml-jackson-databind")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-databind-" version ".tar.gz"))
(sha256
(base32
- "02xrbj6g7pzybq8q33xmpf7cxfapk6z6lgxvig7d38fijz400lji"))))
+ "1d5ns8ypqhdy8d94i8q560ip9kka6q8lhnk6q7nfh2g9mr22cc4w"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-databind.jar"
(define-public java-fasterxml-jackson-modules-base-jaxb
(package
(name "java-fasterxml-jackson-modules-base-jaxb")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-modules-base-" version ".tar.gz"))
(sha256
(base32
- "0bj2pzvycnj3ysbcfa6xl38dmvnp01mnjfcb9jyhv503fch2iv44"))))
+ "0kc19n5a188g4vpyay44xfb7qcabcbfnwzhx1g84lg0sac8lf0ng"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-modules-base-jaxb.jar"
(define-public java-fasterxml-jackson-dataformat-yaml
(package
(name "java-fasterxml-jackson-dataformat-yaml")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-dataformats-text-" version ".tar.gz"))
(sha256
(base32
- "140fwcafv05zbh2ppa6z533dzmfcvzbdxf0dbpbyzqvd84v2vhl2"))))
+ "1x7c7v201jpb8ynjsmmq7jj7hyqzzp39jvpr053ggdndm022yzc7"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-dataformat-yaml.jar"
(define-public java-fasterxml-jackson-dataformat-xml
(package
(name "java-fasterxml-jackson-dataformat-xml")
- (version "2.9.1")
+ (version "2.9.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/FasterXML/"
"jackson-dataformat-xml-" version ".tar.gz"))
(sha256
(base32
- "0x3m9n4kwclcyvxhxjx654qpjza4crphml1q2392qpnbfydx6lnh"))))
+ "1j1qanvcdh6afagr67zqrlypjkf0n6wr1qzpbvkw79lii72j6pbr"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jackson-dataformat-xml.jar"
the subsequent value resolution at any given level.")
(license license:public-domain)))
+(define-public java-cofoja
+ (package
+ (name "java-cofoja")
+ (version "1.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nhatminhle/cofoja.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append "java-cofoja-" version "-checkout"))
+ (sha256
+ (base32
+ "0p7sz8y5xgpi5rx1qwn6587fkd52qr3ha3ybh14gqcyxhikl525w"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "dist"
+ #:test-target "test"
+ #:jdk ,icedtea-8
+ #:make-flags
+ (list "-Ddist.dir=dist")
+ #:modules ((guix build ant-build-system)
+ (guix build java-utils)
+ (guix build utils)
+ (srfi srfi-1)
+ (ice-9 match))
+ #:phases
+ (modify-phases %standard-phases
+ ;; The bulid system ignores the class path the ant-build-system sets
+ ;; up and instead expects to find all dependencies in the "lib"
+ ;; directory.
+ (add-after 'unpack 'create-libdir
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "lib")
+ (for-each
+ (lambda (file)
+ (let ((target (string-append "lib/" (basename file))))
+ (unless (file-exists? target)
+ (symlink file target))))
+ (append-map (match-lambda
+ ((label . dir)
+ (find-files dir "\\.jar$")))
+ inputs))
+ #t))
+ (replace 'install (install-jars "dist")))))
+ (inputs
+ `(("java-asm" ,java-asm)))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "https://github.com/nhatminhle/cofoja")
+ (synopsis "Contracts for Java")
+ (description "Contracts for Java, or Cofoja for short, is a contract
+programming framework and test tool for Java, which uses annotation processing
+and bytecode instrumentation to provide run-time checking. (In particular,
+this is not a static analysis tool.)")
+ (license license:lgpl3+)))
+
(define-public java-aopalliance
(package
(name "java-aopalliance")
configuration and string construction.")
(license license:asl2.0)))
+(define-public java-commons-jexl-2
+ (package
+ (name "java-commons-jexl")
+ (version "2.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/jexl/source/"
+ "commons-jexl-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "1ai7632bwwaxglb0nbpblpr2jw5g20afrsaq372ipkphi3ncy1jz"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "commons-jexl-2.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'disable-broken-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "src/test/java/org/apache/commons/jexl2/"
+ (substitute* "ArithmeticTest.java"
+ (("asserter.assertExpression\\(\"3 / 0\"") "//")
+ (("asserter.assertExpression\\(\"imanull") "//"))
+ ;; This test fails with "ambiguous method invocation"
+ (delete-file "CacheTest.java")
+ ;; This test doesn't have access to the temp directory
+ (substitute* "ClassCreatorTest.java"
+ (("java.io.tmpdir") "user.dir"))
+ ;; This test fails in trying to detect whether it can run.
+ (substitute* "ClassCreator.java"
+ (("boolean canRun =.*") "boolean canRun = false;\n"))
+ ;; ...and these tests depend on it.
+ (delete-file "scripting/JexlScriptEngineOptionalTest.java")
+ (delete-file "scripting/JexlScriptEngineTest.java"))
+ #t))
+ (add-before 'build 'run-javacc
+ (lambda _
+ (with-directory-excursion "src/main/java/org/apache/commons/jexl2/parser/"
+ (and (zero? (system* "java" "jjtree" "Parser.jjt"))
+ (zero? (system* "java" "javacc" "Parser.jj")))))))))
+ (inputs
+ `(("java-commons-logging-minimal" ,java-commons-logging-minimal)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("javacc" ,javacc-4)))
+ (home-page "https://commons.apache.org/proper/commons-jexl/")
+ (synopsis "Java Expression Language ")
+ (description "JEXL is a library intended to facilitate the implementation
+of dynamic and scripting features in applications and frameworks written in
+Java. JEXL implements an Expression Language based on some extensions to the
+JSTL Expression Language supporting most of the constructs seen in
+shell-script or ECMAScript. Its goal is to expose scripting features usable
+by technical operatives or consultants working with enterprise platforms.")
+ (license license:asl2.0)))
+
(define-public java-lz4
(package
(name "java-lz4")
message queues or resource locking.")
(license license:asl2.0)))
+(define-public java-commons-bcel
+ (package
+ (name "java-commons-bcel")
+ (version "6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/bcel/source/bcel-"
+ version "-src.tar.gz"))
+ (sha256
+ (base32
+ "0j3x1rxd673k07psclk8k13rqh0x0mf2yy5qiwkiw4z3afa568jy"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "bcel.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ #:test-dir "src/test/java"
+ ;; FIXME: Tests require the unpackaged jna.
+ #:tests? #f))
+ (home-page "https://commons.apache.org/proper/commons-bcel/")
+ (synopsis "Byte code engineering library")
+ (description "The Byte Code Engineering Library (Apache Commons BCEL) is
+intended to give users a convenient way to analyze, create, and
+manipulate (binary) Java class files. Classes are represented by objects
+which contain all the symbolic information of the given class: methods, fields
+and byte code instructions, in particular.
+
+Such objects can be read from an existing file, be transformed by a
+program (e.g. a class loader at run-time) and written to a file again. An
+even more interesting application is the creation of classes from scratch at
+run-time. The @dfn{Byte Code Engineering Library} (BCEL) may be also useful
+if you want to learn about the @dfn{Java Virtual Machine} (JVM) and the format
+of Java @code{.class} files.")
+ (license license:asl2.0)))
+
(define-public java-xerial-core
(package
(name "java-xerial-core")
`(("junit" ,java-junit)
("hamcrest" ,java-hamcrest-core)))
(home-page "https://github.com/xerial/xerial-java")
- (synopsis "Data managment libraries for Java")
+ (synopsis "Data management libraries for Java")
(description "Xerial is a set of data management libraries for the Java
-programming language. The ulitimate goal of the Xerial project is to manage
+programming language. The ultimate goal of the Xerial project is to manage
everything as database, including class objects, text format data, data
streams, etc.")
(license license:asl2.0)))
#:source-dir "powermock-core/src/main/java"
#:test-dir "powermock-core/src/test"
#:tests? #f; requires powermock-api
- #:jdk ,icedtea-8))
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "powermock-core/src/main/resources"
+ "build/classes"))))))
(inputs
`(("reflect" ,java-powermock-reflect)
("javassist" ,java-jboss-javassist)))
`(#:jar-name "java-powermock-modules-junit4.jar"
#:jdk ,icedtea-8
#:source-dir "powermock-modules/powermock-module-junit4/src/main/java"
- #:test-dir "powermock-modules/powermock-module-junit4/src/test"))
+ #:test-dir "powermock-modules/powermock-module-junit4/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-junit-detection
+ (lambda _
+ ;; Our junit version is 4.12-SNAPSHOT
+ (substitute* (find-files "powermock-modules/powermock-module-junit4"
+ "PowerMockJUnit4MethodValidator.java")
+ (("4.12") "4.12-SNAPSHOT")))))))
(inputs
`(("core" ,java-powermock-core)
("reflect" ,java-powermock-reflect)
(description "Xbean-reflect provides very flexible ways to create objects
and graphs of objects for dependency injection frameworks")
(license license:asl2.0)))
+
+(define-public java-geronimo-xbean-bundleutils
+ (package
+ (inherit java-geronimo-xbean-reflect)
+ (name "java-geronimo-xbean-bundleutils")
+ (arguments
+ `(#:jar-name "geronimo-xbean-bundleutils.jar"
+ #:source-dir "xbean-bundleutils/src/main/java"
+ #:test-dir "xbean-bundleutils/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-java
+ (lambda _
+ ;; We use a more recent version of osgi, so this file requires
+ ;; more interface method implementations.
+ (substitute* "xbean-bundleutils/src/main/java/org/apache/xbean/osgi/bundle/util/DelegatingBundleContext.java"
+ (("import org.osgi.framework.ServiceRegistration;")
+ "import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.ServiceFactory;
+import java.util.Collection;
+import org.osgi.framework.ServiceObjects;")
+ (("public Bundle getBundle\\(\\)")
+ "@Override
+public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
+ throw new UnsupportedOperationException();
+}
+@Override
+public <S> ServiceRegistration<S> registerService(Class<S> clazz,
+ ServiceFactory<S> factory, Dictionary<String, ?> properties) {
+ throw new UnsupportedOperationException();
+}
+public Bundle getBundle()"))
+ #t)))))
+ (inputs
+ `(("java-slf4j" ,java-slf4j-api)
+ ("java-asm" ,java-asm)
+ ("java-osgi-framework" ,java-osgi-framework)
+ ("java-eclipse-osgi" ,java-eclipse-osgi)
+ ("java-osgi-service-packageadmin" ,java-osgi-service-packageadmin)))))
+
+(define-public java-geronimo-xbean-asm-util
+ (package
+ (inherit java-geronimo-xbean-reflect)
+ (name "java-geronimo-xbean-asm-util")
+ (arguments
+ `(#:jar-name "geronimo-xbean-asm-util.jar"
+ #:source-dir "xbean-asm-util/src/main/java"
+ #:tests? #f)); no tests
+ (inputs
+ `(("java-asm" ,java-asm)))
+ (native-inputs '())))
+
+(define-public java-gson
+ (package
+ (name "java-gson")
+ (version "2.8.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/google/gson/archive/"
+ "gson-parent-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1j4qnp7v046q0k48c4kyf69sxaasx2h949d3cqwsm3kzxms3x0f9"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "gson.jar"
+ #:source-dir "gson/src/main/java"
+ #:test-dir "gson/src/test"))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)))
+ (home-page "https://github.com/google/gson")
+ (synopsis "Java serialization/deserialization library from/to JSON")
+ (description "Gson is a Java library that can be used to convert Java
+Objects into their JSON representation. It can also be used to convert a JSON
+string to an equivalent Java object. Gson can work with arbitrary Java objects
+including pre-existing objects that you do not have source-code of.")
+ (license license:asl2.0)))