summary refs log tree commit diff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm1304
1 files changed, 1304 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 806f13ab89..95fba20e88 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4207,6 +4208,40 @@ allowing the end user to plug in the desired logging framework at deployment
 time.")
     (license license:expat)))
 
+(define-public java-slf4j-simple
+  (package
+    (name "java-slf4j-simple")
+    (version "1.7.25")
+    (source (package-source java-slf4j-api))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "slf4j-simple.jar"
+       #:source-dir "slf4j-simple/src/main"
+       #:test-dir "slf4j-simple/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         ;; The tests need some test classes from slf4j-api
+         (add-before 'check 'build-slf4j-api-test-helpers
+           (lambda _
+             ;; Add current dir to CLASSPATH ...
+             (setenv "CLASSPATH"
+                     (string-append (getcwd) ":" (getenv "CLASSPATH")))
+             ;; ... and build test helper classes here:
+             (zero?
+              (apply system*
+                     `("javac" "-d" "."
+                       ,@(find-files "slf4j-api/src/test" ".*\\.java")))))))))
+    (inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("java-slf4j-api" ,java-slf4j-api)))
+    (home-page "https://www.slf4j.org/")
+    (synopsis "Simple implementation of simple logging facade for Java")
+    (description "SLF4J binding for the Simple implementation, which outputs
+all events to System.err.  Only messages of level INFO and higher are
+printed.")
+    (license license:expat)))
+
 (define-public antlr2
   (package
     (name "antlr2")
@@ -4716,3 +4751,1272 @@ complex transformations and code analysis tools.")
              #t)))))
     (native-inputs
      `(("java-junit" ,java-junit)))))
+
+(define-public java-microemulator-cldc
+  (package
+    (name "java-microemulator-cldc")
+    (version "2.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/barteo/microemu/archive/"
+                                  "microemulator_"
+                                  (string-map (lambda (c) (if (char=? c #\.) #\_ c))
+                                              version)
+                                  ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1x1apmz38gkppxnwnygwmi12j54v4p258v8ddzn6dldkk7vak1ll"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "microemulator-cldc.jar"
+       #:source-dir "microemu-cldc/src/main/java"
+       #:tests? #f)); Requires even older software
+    (home-page "https://github.com/barteo/microemu")
+    (synopsis "J2ME CLDC emulator")
+    (description "Microemulator is a Java 2 Micro Edition (J2ME) CLDC/MIDP
+Emulator.  It allows to demonstrate MIDlet based applications in web browser
+applet and can be run as a standalone java application.")
+    (license (list license:asl2.0
+                   ;; or altenatively:
+                   license:lgpl2.1+))))
+
+(define-public java-datanucleus-javax-persistence
+  (package
+    (name "java-datanucleus-javax-persistence")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/datanucleus/"
+                                  "javax.persistence/archive/javax.persistence-"
+                                  version "-release.tar.gz"))
+              (sha256
+               (base32
+                "11jx0fjwgc2hhbqqgdd6m1pf2fplf9vslppygax0y1z5csnqjhpx"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-datanucleus-javax-persistence.jar"
+       #:jdk ,icedtea-8
+       #:source-dir "src/main/java"
+       #:tests? #f)); no tests
+    (home-page "https://github.com/datanucleus/javax.persistence")
+    (synopsis "JPA API")
+    (description "This package contains a clean definition of JPA API intended
+for use with DataNucleus JPA since the JCP haven't provided an official JPA API
+jar.  See @url{http://java.net/projects/jpa-spec/downloads} for the specification
+used to generate this API.")
+    (license (list license:edl1.0 license:epl1.0))))
+
+(define-public java-osgi-cmpn
+  (package
+    (name "java-osgi-cmpn")
+    (version "6.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/"
+                                  "org/osgi/osgi.cmpn/" version "/osgi.cmpn-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1lmb6xyrmkqdhv1kayf0514rlwq6ypvs4m44ibrck3snp8241wys"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-cmpn.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("core" ,java-osgi-core)
+       ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
+       ("microemulator" ,java-microemulator-cldc)
+       ("servlet" ,java-classpathx-servletapi)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Compendium specification module of OSGi framework")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the compendium specification module, providing interfaces and classes for use
+in compiling bundles.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-component-annotations
+  (package
+    (name "java-osgi-service-component-annotations")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.component.annotations/"
+                                  version "/org.osgi.service.component.annotations-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "15rq9cmp4fpn74q44m4j35qsqmjf5lx3hcrk6pzvbhc08igic2f0"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-component-annotations.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Support annotations for osgi-service-component")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the support annotations for osgi-service-component.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-dto
+  (package
+    (name "java-osgi-dto")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.dto/" version "/org.osgi.dto-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0f4bqjzadn0hwk6sd3h5gvbyfp3yci1s6r0v770cc15p0pg627yr"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-dto.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Data Transfer Objects")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the Data Transfer Objects.  It is easily serializable having only public fields
+of primitive types and their wrapper classes, Strings, and DTOs.  List, Set,
+Map and array aggregates may also be used.  The aggregates must only hold
+objects of the listed types or aggregates.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-resource
+  (package
+    (name "java-osgi-resource")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.resource/"
+                                  version "/org.osgi.resource-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0hi0fsc5v99q22bd7lrkvpz1y0ds4w9arjldpwsrcpqvz2js7q2d"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-resource.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("dto" ,java-osgi-dto)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI Resource")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the definition of common types in osgi packages.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-namespace-contract
+  (package
+    (name "java-osgi-namespace-contract")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.namespace.contract/"
+                                  version "/org.osgi.namespace.contract-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1iz4f2i0fvqrlq90ki9nfzcfpvy2av434ri25bglywqssx8mmp36"))))
+    (build-system ant-build-system)
+    (inputs
+     `(("resource" ,java-osgi-resource)
+       ("annotation" ,java-osgi-annotation)))
+    (arguments
+     `(#:jar-name "osgi-namespace-contract.jar"
+       #:tests? #f)); no tests
+    (home-page "http://www.osgi.org")
+    (synopsis "Contract Capability and Requirement Namespace")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the names for the attributes and directives for a namespace with contracts.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-namespace-extender
+  (package
+    (name "java-osgi-namespace-extender")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.namespace.extender/"
+                                  version "/org.osgi.namespace.extender-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0jgqiak2i05qv6j3gd33xlaifzzc0ylxxk376v2x0apfg3vvixmz"))))
+    (build-system ant-build-system)
+    (inputs
+     `(("resource" ,java-osgi-resource)
+       ("annotation" ,java-osgi-annotation)))
+    (arguments
+     `(#:jar-name "osgi-namespace-extendent.jar"
+       #:tests? #f)); no tests
+    (home-page "http://www.osgi.org")
+    (synopsis "Extender Capability and Requirement Namespace")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the names for the attributes and directives for an extender namespace.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-namespace-service
+  (package
+    (name "java-osgi-namespace-service")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.namespace.service/"
+                                  version "/org.osgi.namespace.service-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0qmw8n2449nkmm56d1znz9zhazb6ya3vsimd5bf5jg23zzhgl8c8"))))
+    (build-system ant-build-system)
+    (inputs
+     `(("resource" ,java-osgi-resource)
+       ("annotation" ,java-osgi-annotation)))
+    (arguments
+     `(#:jar-name "osgi-namespace-service.jar"
+       #:tests? #f)); no tests
+    (home-page "http://www.osgi.org")
+    (synopsis "Service Capability and Requirement Namespace")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the names for the attributes and directives for a service namespace.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-util-function
+  (package
+    (name "java-osgi-util-function")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.util.function/"
+                                  version "/org.osgi.util.function-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "04l7j3hwmmj28w23m7paca0afzncs42j2mdr3liqq8kvp548sc6x"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-util-function.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI Util Function")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+an interface for a function that accepts a single argument and produces a result.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-util-promise
+  (package
+    (name "java-osgi-util-promise")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.util.promise/"
+                                  version "/org.osgi.util.promise-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0y34dwiflg1c4ahvkswpf9z02xph2sr9fm04ia5493x3lshpw22c"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-util-promise.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("function" ,java-osgi-util-function)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Promise of a value")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+an interface and utilitary classes for promises.  A Promise represents a future
+value.  It handles the interactions for asynchronous processing.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-metatype-annotations
+  (package
+    (name "java-osgi-service-metatype-annotations")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.metatype.annotations/"
+                                  version "/org.osgi.service.metatype.annotations-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "12rwm3349wk80vm88rcdgs4435m4jxkpkj5mrx326skkz2c6hyw6"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-metatype-annotations.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Support annotations for metatype")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the support annotations for metatype.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-repository
+  (package
+    (name "java-osgi-service-repository")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.repository/"
+                                  version "/org.osgi.service.repository-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1k41mhg7b58pd8nsghr2qwcjrxdnf1p9spsw9v11k4257g6rl06n"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-repository.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("promise" ,java-osgi-util-promise)
+       ("resource" ,java-osgi-resource)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI service repository")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+a repository service that contains resources.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-framework
+  (package
+    (name "java-osgi-framework")
+    (version "1.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.framework/" version "/org.osgi.framework-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1lwp2zfad3rybcc6q9bwz8xsgkc92ypzy5p6x54387f1qj65m73s"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-framework.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("resource" ,java-osgi-resource)
+       ("dto" ,java-osgi-dto)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGi framework")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-log
+  (package
+    (name "java-osgi-service-log")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.log/"
+                                  version "/org.osgi.service.log-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1029j30dzcwializzca0j3fkhwwz08kmmsha5agw1iccscimj6r0"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-log.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("java-osgi-framework" ,java-osgi-framework)))
+    (home-page "http://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
+and service platform for the Java programming language.  This package contains
+the log service.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-jdbc
+  (package
+    (name "java-osgi-service-jdbc")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.jdbc/"
+                                  version "/org.osgi.service.jdbc-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "11iln5v7bk469cgb9ddkrz9sa95b3733gqgaqw9xf5g6wq652yjz"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-jdbc.jar"
+       #:tests? #f)); no tests
+    (home-page "http://www.osgi.org")
+    (synopsis "Factory for JDBC connection factories")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+a factory for JDBC connection factories.  There are 3 preferred connection
+factories for getting JDBC connections:
+
+@itemize
+@item @code{javax.sql.DataSource};
+@item @code{javax.sql.ConnectionPoolDataSource};
+@item @code{javax.sql.XADataSource}.
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-resolver
+  (package
+    (name "java-osgi-service-resolver")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.resolver/"
+                                  version "/org.osgi.service.resolver-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1dzqn1ryfi2rq4zwsgp44bmj2wlfydjg1qbxw2b0z4xdjjy55vxd"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-resolver.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("annotation" ,java-osgi-annotation)
+       ("resource" ,java-osgi-resource)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI Resolver service")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+a resolver service that resolves the specified resources in the context supplied
+by the caller.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-util-tracker
+  (package
+    (name "java-osgi-util-tracker")
+    (version "1.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.util.tracker/"
+                                  version "/org.osgi.util.tracker-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0c4fh9vxwzsx59r8dygda0gq2gx3z5vfhc3jsphlqwf5w0h403lz"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-util-tracker.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("framework" ,java-osgi-framework)
+       ("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "Bundle tracking")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+bundle tracking utility classes.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-cm
+  (package
+    (name "java-osgi-service-cm")
+    (version "1.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.cm/"
+                                  version "/org.osgi.service.cm-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "1z8kap48y3xi0ggj8v6czglfnpnd94mmismgi2wbqhj1nl5fzbp6"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-cm.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("framework" ,java-osgi-framework)
+       ("annotation" ,java-osgi-annotation)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI Configuration Management")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+utility classes for the configuration of services.")
+    (license license:asl2.0)))
+
+(define-public java-osgi-service-packageadmin
+  (package
+    (name "java-osgi-service-packageadmin")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+                                  "org.osgi.service.packageadmin/"
+                                  version "/org.osgi.service.packageadmin-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "041mpxzi7g36wmcily6y4ccn3jx15akpdy8gmhyb7m98x7qfvn52"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "osgi-service-packageadmin.jar"
+       #:tests? #f)); no tests
+    (inputs
+     `(("framework" ,java-osgi-framework)))
+    (home-page "http://www.osgi.org")
+    (synopsis "OSGI Package Administration")
+    (description
+      "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.  This package contains
+the packageadmin service.")
+    (license license:asl2.0)))
+
+(define-public java-ops4j-base-lang
+  (package
+    (name "java-ops4j-base-lang")
+    (version "1.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/ops4j/org.ops4j.base/"
+                                  "archive/base-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18hl3lpchgpv8yh5rlk39l2gif5dlfgb8gxjmncf39pr2dprkniw"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-ops4j-base-lang.jar"
+       #:source-dir "ops4j-base-lang/src/main/java"
+       #:tests? #f; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'add-test-file
+           (lambda _
+             ;; That file is required by a test in ops4j-pax-exam-core-spi
+             (mkdir-p "build/classes/META-INF/maven/org.ops4j.base/ops4j-base-lang")
+             (with-output-to-file "build/classes/META-INF/maven/org.ops4j.base/ops4j-base-lang/pom.properties"
+               (lambda _
+                 (display
+                   (string-append
+                     "version=" ,version "\n"
+                     "groupId=org.ops4j.base"
+                     "artifactId=ops4j-base-lang\n")))))))))
+    (home-page "https://ops4j1.jira.com/wiki/spaces/base/overview")
+    (synopsis "Utility classes and extensions to be used in OPS4J projects")
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities and extensions related to @code{java.lang}.")
+    (license license:asl2.0)))
+
+(define-public java-ops4j-base-monitors
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-monitors")
+    (arguments
+     `(#:jar-name "java-ops4j-base-monitors.jar"
+       #:source-dir "ops4j-base-monitors/src/main/java"
+       #:tests? #f)); no tests
+    (inputs
+     `(("lang" ,java-ops4j-base-lang)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities and extensions related to monitoring.")))
+
+(define-public java-ops4j-base-io
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-io")
+    (arguments
+     `(#:jar-name "java-ops4j-base-io.jar"
+       #:source-dir "ops4j-base-io/src/main/java"
+       #:test-dir "ops4j-base-io/src/test"
+       #:test-exclude
+       (list "**/ListerTest.java")))
+    (inputs
+     `(("lang" ,java-ops4j-base-monitors)
+       ("lang" ,java-ops4j-base-lang)))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities and extensions related to handling streams and files.")))
+
+(define-public java-ops4j-base-util
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-util")
+    (arguments
+     `(#:jar-name "java-ops4j-base-util.jar"
+       #:source-dir "ops4j-base-util/src/main/java"
+       #:test-dir "ops4j-base-util/src/test"))
+    (inputs
+     `(("lang" ,java-ops4j-base-lang)))
+    (native-inputs
+     `(("junit" ,java-junit)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities and extensions related to environment, i18n and
+mime types.")))
+
+(define-public java-ops4j-base-util-property
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-util-property")
+    (arguments
+     `(#:jar-name "java-ops4j-base-util-property.jar"
+       #:source-dir "ops4j-base-util-property/src/main/java"
+       #:tests? #f)); no tests
+    (inputs
+     `(("lang" ,java-ops4j-base-lang)
+       ("util" ,java-ops4j-base-util)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities and extensions related to resolving properties from
+different sources.")))
+
+(define-public java-ops4j-base-store
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-store")
+    (arguments
+     `(#:jar-name "java-ops4j-base-store.jar"
+       #:source-dir "ops4j-base-store/src/main/java"
+       #:tests? #f)); no tests
+    (inputs
+     `(("lang" ,java-ops4j-base-lang)
+       ("slf4j" ,java-slf4j-api)
+       ("io" ,java-ops4j-base-io)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities for storing and retrieving data from an
+@code{InputStream}.")))
+
+(define-public java-ops4j-base-spi
+  (package
+    (inherit java-ops4j-base-lang)
+    (name "java-ops4j-base-spi")
+    (arguments
+     `(#:jar-name "java-ops4j-base-spi.jar"
+       #:source-dir "ops4j-base-spi/src/main/java"
+       #:test-dir "ops4j-base-spi/src/test"))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)))
+    (description "OPS4J stands for Open Participation Software for Java.  This
+package contains utilities for obtaining services via the Java SE 6
+@code{ServiceLoader}.")))
+
+(define-public java-aqute-bnd-annotation
+  (package
+    (name "java-aqute-bnd-annotation")
+    (version "3.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/bndtools/bnd/archive/"
+                                  version ".REL.tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09vgb6axikbz66zi9falijbnzh1qnp9ysfns123dmzdb01cbza9q"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-aqute-bnd-annotation.jar"
+       #:source-dir "biz.aQute.bnd.annotation/src"
+       #:tests? #f)); empty test dir
+    (home-page "http://bnd.bndtools.org/")
+    (synopsis "Tools for OSGi")
+    (description "Bnd is a swiss army knife for OSGi, it creates manifest
+headers based on analyzing the class code, it verifies the project settings,
+it manages project dependencies, gives diffs jars, and much more.")
+    (license license:asl2.0)))
+
+(define-public java-aqute-libg
+  (package
+    (inherit java-aqute-bnd-annotation)
+    (name "java-aqute-libg")
+    (arguments
+     `(#:jar-name "java-aqute-libg.jar"
+       #:source-dir "aQute.libg/src"
+       #:tests? #f)); FIXME: tests are in "aQute.libg/test", not in a java directory
+    (inputs
+     `(("slf4j" ,java-slf4j-api)
+       ("osgi-annot" ,java-osgi-annotation)
+       ("java-osgi-cmpn" ,java-osgi-cmpn)
+       ("osgi" ,java-osgi-core)))))
+
+(define-public java-aqute-bndlib
+  (package
+    (inherit java-aqute-bnd-annotation)
+    (name "java-aqute-bndlib")
+    (arguments
+     `(#:jar-name "java-bndlib.jar"
+       #:source-dir "biz.aQute.bndlib/src"
+       #:tests? #f)); no tests
+    (inputs
+     `(("slf4j" ,java-slf4j-api)
+       ("osgi-annot" ,java-osgi-annotation)
+       ("java-aqute-libg" ,java-aqute-libg)
+       ("java-aqute-bnd-annotation" ,java-aqute-bnd-annotation)
+       ("java-osgi-service-component-annotations" ,java-osgi-service-component-annotations)
+       ("java-osgi-service-repository" ,java-osgi-service-repository)
+       ("java-osgi-service-log" ,java-osgi-service-log)
+       ("java-osgi-service-metatype-annotations" ,java-osgi-service-metatype-annotations)
+       ("java-osgi-namespace-contract" ,java-osgi-namespace-contract)
+       ("java-osgi-namespace-extender" ,java-osgi-namespace-extender)
+       ("java-osgi-namespace-service" ,java-osgi-namespace-service)
+       ("promise" ,java-osgi-util-promise)
+       ("osgi" ,java-osgi-core)))))
+
+(define-public java-ops4j-pax-tinybundles
+  (package
+    (name "java-ops4j-pax-tinybundles")
+    (version "2.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/ops4j/org.ops4j.pax.tinybundles/"
+                                  "archive/tinybundles-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0y0gq3pvv0iir2b885lmlwnvr724vv7vklzhhr4fs27d7mdkj871"))))
+    (arguments
+     `(#:jar-name "java-ops4j-pax-tinybundles.jar"
+       #:source-dir "src/main/java"
+       #:test-exclude
+       ;; Abstract base classes for other tests
+       (list "**/BndTest.java" "**/CoreTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-version
+           (lambda _
+             ;; This test has a reference to an old version of bndlib we are not
+             ;; packaging.  It uses the version referenced in pom.xml.  We replace
+             ;; it with our own version.
+             (substitute* "src/test/java/org/ops4j/pax/tinybundles/bnd/BndTest.java"
+               (("2.4.0.201411031534") "3.4.0")))))))
+    (inputs
+     `(("lang" ,java-ops4j-base-lang)
+       ("io" ,java-ops4j-base-io)
+       ("store" ,java-ops4j-base-store)
+       ("slf4j" ,java-slf4j-api)
+       ("libg" ,java-aqute-libg)
+       ("bndlib" ,java-aqute-bndlib)))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)
+       ("log4j" ,java-log4j-api)
+       ("bndannotation" ,java-aqute-bnd-annotation)
+       ("framework" ,java-osgi-framework)))
+    (build-system ant-build-system)
+    (home-page "https://ops4j1.jira.com/wiki/spaces/ops4j/pages/12060312/Tinybundles")
+    (synopsis "Java APIs to create OSGi related artifacts")
+    (description "Tinybundles is all about creating OSGi related artifacts like
+Bundles, Fragments and Deployment Packages with Java Api.  It is very convinient
+to create such artifacts on-the-fly inside Tests (like in Pax Exam).  On the
+other hand, this library can be a foundation of real end user tools that need
+to create those artifacts.")
+    (license license:asl2.0)))
+
+(define-public java-ops4j-pax-exam-core
+  (package
+    (name "java-ops4j-pax-exam-core")
+    (version "4.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/ops4j/org.ops4j.pax.exam2/"
+                                  "archive/exam-reactor-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08mzw8nkah3rj3vznlplnawspxhp61zgvb44ifqa1rni1cvbms2g"))))
+    (arguments
+     `(#:jar-name "java-ops4j-pax-exam-core.jar"
+       #:source-dir "core/pax-exam/src/main/java"
+       #:test-dir "core/pax-exam/src/test"))
+    (inputs
+     `(("slf4j" ,java-slf4j-api)
+       ("lang" ,java-ops4j-base-lang)
+       ("io" ,java-ops4j-base-io)
+       ("util-property" ,java-ops4j-base-util-property)
+       ("util-store" ,java-ops4j-base-store)
+       ("java-osgi-core" ,java-osgi-core)))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)))
+    (build-system ant-build-system)
+    (home-page "https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/overview")
+    (synopsis "In-Container Testing for OSGi, Java EE and CDI")
+    (description "Pax Exam creates OSGi bundles for testing purposes.  It lets
+the user take control of the OSGi framework, the test framework (e.g. JUnit) and
+the system under test at the same time.")
+    (license license:asl2.0)))
+
+(define-public java-ops4j-pax-exam-core-spi
+  (package
+    (inherit java-ops4j-pax-exam-core)
+    (name "java-ops4j-pax-exam-core-spi")
+    (arguments
+     `(#:jar-name "java-ops4j-pax-exam-spi.jar"
+       #:source-dir "src/main/java"
+       #:test-exclude
+       (list
+         ;; Abstract base class, not a test
+         "**/BaseStagedReactorTest.java"
+         ;; Depends on org.mortbay.jetty.testwars:test-war-dump
+         "**/WarBuilderTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             ;; Tests assume we are in this directory
+             (chdir "core/pax-exam-spi")))
+         (add-before 'check 'fix-tests
+           (lambda _
+             ;; One test checks that this file is present.
+             (mkdir-p "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi")
+             (with-output-to-file
+               "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi/pom.properties"
+               (lambda _
+                 (display
+                   (string-append "artifactId = pax-exam-spi\n"
+                                  "version = " ,(package-version java-ops4j-pax-exam-core-spi)))))
+             ;; Maven puts compilation results in the target directory, while we
+             ;; put them in the build directory.
+             (substitute* '("src/test/java/org/ops4j/pax/exam/spi/war/WarBuilderTest.java"
+                            "src/test/java/org/ops4j/pax/exam/spi/war/WarTestProbeBuilderTest.java"
+                            "src/test/java/org/ops4j/pax/exam/spi/war/ZipBuilderTest.java")
+               (("target") "build"))
+             ;; One test is expected to fail, but it doesn't throw the expected exception
+             (substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java"
+               (("AssertionError") "IllegalArgumentException")))))))
+    (inputs
+     `(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core)
+       ("lang" ,java-ops4j-base-lang)
+       ("monitors" ,java-ops4j-base-monitors)
+       ("store" ,java-ops4j-base-store)
+       ("io" ,java-ops4j-base-io)
+       ("spi" ,java-ops4j-base-spi)
+       ("osgi" ,java-osgi-core)
+       ("slf4j" ,java-slf4j-api)
+       ("tinybundles" ,java-ops4j-pax-tinybundles)))
+    (native-inputs
+     `(("mockito" ,java-mockito-1)
+       ("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)
+       ("cglib" ,java-cglib)
+       ("objenesis" ,java-objenesis)
+       ("asm" ,java-asm)))))
+
+(define-public java-ops4j-pax-exam-core-junit
+  (package
+    (inherit java-ops4j-pax-exam-core)
+    (name "java-ops4j-pax-exam-core-junit")
+    (arguments
+     `(#:jar-name "ops4j-pax-exam-core-junit.jar"
+       #:source-dir "drivers/pax-exam-junit4/src/main/java"
+       #:tests? #f)); no tests
+    (inputs
+     `(("junit" ,java-junit)
+       ("slf4j" ,java-slf4j-api)
+       ("core" ,java-ops4j-pax-exam-core)
+       ("spi" ,java-ops4j-pax-exam-core-spi)))
+    (native-inputs '())))
+
+(define-public java-fasterxml-jackson-annotations
+  (package
+    (name "java-fasterxml-jackson-annotations")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-annotations/archive/"
+                                  "jackson-annotations-" version ".tar.gz"))
+              (sha256
+               (base32
+                "005ksgqx2ds3zdmlvbcmmz82y28b1mx0i9bpvprim1jaddbba0bd"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-annotations.jar"
+       #:source-dir "src/main/java"
+       #:test-dir "src/test"))
+    (native-inputs
+     `(("junit" ,java-junit)))
+    (home-page "https://github.com/FasterXML/jackson-annotations")
+    (synopsis "General purpose annotations for the Jackson Data Processor")
+    (description "This package contains general purpose annotations for the
+Jackson Data Processor, used on value and handler types.  The only annotations
+not included are ones that require dependency to the Databind package.")
+    (license license:asl2.0)))
+
+(define-public java-fasterxml-jackson-core
+  (package
+    (name "java-fasterxml-jackson-core")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-core/archive/"
+                                  "jackson-core-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1sdfp74zvlh4xr5h5bj87yjlp6kny3i8ai9m0q3xs7f8hvmxpx09"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-core.jar"
+       #:source-dir "src/main/java"
+       #:test-dir "src/test"
+       #:test-exclude
+       (list
+         ;; Expected failure.  pom.xml excludes these
+         "**/failing/**"
+         ;; Base classes that have no constructor for junit
+         "**/BaseTest.java"
+         "**/ConcurrencyReadTest.java"
+         "**/ManualCharAccessTest.java"
+         "**/ManualCharAccessTest.java"
+         "**/TrailingCommasTest.java"
+         "**/AsyncMissingValuesInObjectTest.java"
+         "**/AsyncMissingValuesInArrayTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'generate-PackageVersion.java
+           (lambda _
+             (let* ((out "src/main/java/com/fasterxml/jackson/core/json/PackageVersion.java")
+                    (in (string-append out ".in")))
+               (copy-file in out)
+               (substitute* out
+                 (("@package@") "com.fasterxml.jackson.core.json")
+                 (("@projectversion@") ,version)
+                 (("@projectgroupid@") "com.fasterxml.jackson.core")
+                 (("@projectartifactid@") "jackson-core")))))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "src/main/resources"
+                               "build/classes")))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "src/test/resources"
+                               "build/test-classes"))))))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)))
+    (home-page "https://github.com/FasterXML/jackson-core")
+    (synopsis "")
+    (description "")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-fasterxml-jackson-databind
+  (package
+    (name "java-fasterxml-jackson-databind")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-databind/archive/"
+                                  "jackson-databind-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02xrbj6g7pzybq8q33xmpf7cxfapk6z6lgxvig7d38fijz400lji"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-databind.jar"
+       #:source-dir "src/main/java"
+       #:tests? #f; requires javax.measures for which I can't find a free implementation
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'generate-PackageVersion.java
+           (lambda _
+             (let* ((out "src/main/java/com/fasterxml/jackson/databind/cfg/PackageVersion.java")
+                    (in (string-append out ".in")))
+               (copy-file in out)
+               (substitute* out
+                 (("@package@") "com.fasterxml.jackson.databind.cfg")
+                 (("@projectversion@") ,version)
+                 (("@projectgroupid@") "com.fasterxml.jackson.databind")
+                 (("@projectartifactid@") "jackson-databind")))))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "src/main/resources" "build/classes"))))))
+    (inputs
+     `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
+       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)))
+    (home-page "https://github.com/FasterXML/jackson-databind")
+    (synopsis "Data-binding functionality and tree-model for the Jackson Data Processor")
+    (description "This package contains the general-purpose data-binding
+functionality and tree-model for Jackson Data Processor.  It builds on core
+streaming parser/generator package, and uses Jackson Annotations for
+configuration.")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-fasterxml-jackson-modules-base-jaxb
+  (package
+    (name "java-fasterxml-jackson-modules-base-jaxb")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-modules-base/archive/"
+                                  "jackson-modules-base-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0bj2pzvycnj3ysbcfa6xl38dmvnp01mnjfcb9jyhv503fch2iv44"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-modules-base-jaxb.jar"
+       #:source-dir "jaxb/src/main/java"
+       #:test-dir "jaxb/src/test"
+       #:test-exclude
+       ;; Base class for tests
+       (list "**/BaseJaxbTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'generate-PackageVersion.java
+           (lambda _
+             (let* ((out (string-append "jaxb/src/main/java/com/fasterxml/"
+                                        "jackson/module/jaxb/PackageVersion.java"))
+                    (in (string-append out ".in")))
+               (copy-file in out)
+               (substitute* out
+                 (("@package@") "com.fasterxml.jackson.module.jaxb")
+                 (("@projectversion@") ,version)
+                 (("@projectgroupid@") "com.fasterxml.jackson.module.jaxb")
+                 (("@projectartifactid@") "jackson-module-jaxb")))))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "jaxb/src/main/resources" "build/classes"))))))
+    (inputs
+     `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
+       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
+       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "https://github.com/FasterXML/jackson-modules-base")
+    (synopsis "Jaxb annotations jackson module")
+    (description "This package is the jaxb annotations module for jackson.")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-snakeyaml
+  (package
+    (name "java-snakeyaml")
+    (version "1.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://bitbucket.org/asomov/snakeyaml/get/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0rf5ha6w0waz50jz2479jsrbgmd0dnx0gs337m126j5z7zlmg7mg"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-snakeyaml.jar"
+       #:source-dir "src/main/java"
+       ;; Tests require velocity, a cyclic dependency, and
+       ;; java-spring-framework-context which is not packaged.
+       #:tests? #f))
+    (home-page "https://bitbucket.org/asomov/snakeyaml")
+    (synopsis "YAML processor")
+    (description "SnakeYAML is a YAML processor for the Java Virtual Machine.")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-fasterxml-jackson-dataformat-yaml
+  (package
+    (name "java-fasterxml-jackson-dataformat-yaml")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-dataformats-text/archive/"
+                                  "jackson-dataformats-text-" version ".tar.gz"))
+              (sha256
+               (base32
+                "140fwcafv05zbh2ppa6z533dzmfcvzbdxf0dbpbyzqvd84v2vhl2"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-dataformat-yaml.jar"
+       #:source-dir "yaml/src/main/java"
+       #:test-dir "yaml/src/test"
+       #:test-exclude (list "**/failing/**.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'generate-PackageVersion.java
+           (lambda _
+             (let* ((out "yaml/src/main/java/com/fasterxml/jackson/dataformat/yaml/PackageVersion.java")
+                    (in (string-append out ".in")))
+               (copy-file in out)
+               (substitute* out
+                 (("@package@") "com.fasterxml.jackson.dataformat.yaml")
+                 (("@projectversion@") ,version)
+                 (("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml")
+                 (("@projectartifactid@") "jackson-dataformat-yaml"))))))))
+    (inputs
+     `(("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-snakeyaml" ,java-snakeyaml)))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)
+       ("java-ops4j-pax-exam-core-spi" ,java-ops4j-pax-exam-core-spi)
+       ("java-ops4j-pax-exam-core-junit" ,java-ops4j-pax-exam-core-junit)
+       ("java-ops4j-pax-exam" ,java-ops4j-pax-exam-core)))
+    (home-page "https://github.com/FasterXML/jackson-dataformats-text")
+    (synopsis "Yaml backend for Jackson")
+    (description "Dataformat backends are used to support format alternatives
+to JSON, supported by default.  This is done by sub-classing Jackson core
+abstractions.")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-stax2-api
+  (package
+    (name "java-stax2-api")
+    (version "4.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/stax2-api/archive/"
+                                  "stax2-api-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1amc1si0l0hyyw2sawmnzy4hkna3z6fp195y4nm5m9wb9ld5awkq"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-stax2-api.jar"
+       #:source-dir "src/main/java"
+       #:tests? #f)); no tests
+    (home-page "https://github.com/FasterXML/stax2-api")
+    (synopsis "Stax2 API")
+    (description "Stax2 API is an extension to basic Stax 1.0 API that adds
+significant new functionalities, such as full-featured bi-direction validation
+interface and high-performance Typed Access API.")
+    (license license:bsd-2)))
+
+(define-public java-woodstox-core
+  (package
+    (name "java-woodstox-core")
+    (version "5.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/woodstox/archive/"
+                                  "woodstox-core-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1i7pdgb8jbw6gdy5kmm0l6rz109n2ns92pqalpyp24vb8vlvdfd4"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "woodstox.jar"
+       #:test-exclude
+       (list "**/Base*.java" "failing/**")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'remove-msv-dep
+           (lambda _
+             ;; we don't need osgi, and it depends on msv
+             (delete-file-recursively "src/main/java/com/ctc/wstx/osgi")
+             ;; msv's latest release is from 2011 and we don't need it
+             (delete-file-recursively "src/main/java/com/ctc/wstx/msv")
+             (delete-file-recursively "src/test/java/wstxtest/osgi")
+             (delete-file-recursively "src/test/java/wstxtest/msv")))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "src/main/resources" "build/classes"))))))
+    (inputs
+     `(("stax2" ,java-stax2-api)))
+    (native-inputs
+     `(("junit" ,java-junit)))
+    (home-page "https://github.com/FasterXML/woodstox")
+    (synopsis "Stax XML API implementation")
+    (description "Woodstox is a stax XML API implementation.")
+    (license license:asl2.0)))
+
+(define-public java-fasterxml-jackson-dataformat-xml
+  (package
+    (name "java-fasterxml-jackson-dataformat-xml")
+    (version "2.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/FasterXML/"
+                                  "jackson-dataformat-xml/archive/"
+                                  "jackson-dataformat-xml-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0x3m9n4kwclcyvxhxjx654qpjza4crphml1q2392qpnbfydx6lnh"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jackson-dataformat-xml.jar"
+       #:source-dir "src/main/java"
+       #:test-exclude
+       (list "**/failing/**")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'generate-PackageVersion.java
+           (lambda _
+             (let* ((out "src/main/java/com/fasterxml/jackson/dataformat/xml/PackageVersion.java")
+                    (in (string-append out ".in")))
+               (copy-file in out)
+               (newline)
+               (substitute* out
+                 (("@package@") "com.fasterxml.jackson.dataformat.xml")
+                 (("@projectversion@") ,version)
+                 (("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml")
+                 (("@projectartifactid@") "jackson-dataformat-xml")))))
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "src/main/resources" "build/classes"))))))
+    (inputs
+     `(("jackson-annotations" ,java-fasterxml-jackson-annotations)
+       ("jackson-core" ,java-fasterxml-jackson-core)
+       ("jackson-modules-base-jaxb" ,java-fasterxml-jackson-modules-base-jaxb)
+       ("jackson-databind" ,java-fasterxml-jackson-databind)
+       ("stax2-api" ,java-stax2-api)
+       ("woodstox" ,java-woodstox-core)))
+    (native-inputs
+     `(("junit" ,java-junit)
+       ("hamcrest" ,java-hamcrest-core)))
+    (home-page "https://github.com/FasterXML/jackson-dataformat-xml")
+    (synopsis "Read and write XML")
+    (description "This package contains Jackson extension component for reading
+and writing XML encoded data.
+
+Further, the goal is to emulate how JAXB data-binding works with \"Code-first\"
+approach (that is, no support is added for \"Schema-first\" approach).  Support
+for JAXB annotations is provided by JAXB annotation module; this module
+provides low-level abstractions (@code{JsonParser}, @code{JsonGenerator},
+@code{JsonFactory}) as well as small number of higher level overrides needed to
+make data-binding work.")
+    (license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing