summaryrefslogtreecommitdiff
path: root/gnu/packages/java-xml.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-01-08 22:57:35 +0100
committerRicardo Wurmus <rekado@elephly.net>2023-01-08 23:20:59 +0100
commita4d9ce54880dc0d299e4489a168398440c9e7c33 (patch)
tree385386834999e94adc1e4ceabe65fbdaef1f8fca /gnu/packages/java-xml.scm
parent56b56db13ed82e8f44948d6742e61b8653c97148 (diff)
downloadguix-patches-a4d9ce54880dc0d299e4489a168398440c9e7c33.tar
guix-patches-a4d9ce54880dc0d299e4489a168398440c9e7c33.tar.gz
gnu: Move Java XML packages to new module.
* gnu/packages/xml.scm (java-simple-xml, java-jaxp, java-apache-xml-commons-resolver, java-jaxen, java-xom, java-xsdlib, java-xpp3, java-xmlpull2, java-xmlpull-api-v1, java-dom4j, java-kxml2, java-stax, java-jettison, java-jdom2, java-xstream, java-mxparser): Move these variables from here... * gnu/packages/java-xml.scm: ...to this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new file. * gnu/packages/axoloti.scm, gnu/packages/batik.scm, gnu/packages/bioinformatics.scm, gnu/packages/groovy.scm, gnu/packages/java.scm, gnu/packages/maven.scm: Adjust module imports.
Diffstat (limited to 'gnu/packages/java-xml.scm')
-rw-r--r--gnu/packages/java-xml.scm688
1 files changed, 688 insertions, 0 deletions
diff --git a/gnu/packages/java-xml.scm b/gnu/packages/java-xml.scm
new file mode 100644
index 0000000000..5b16806e27
--- /dev/null
+++ b/gnu/packages/java-xml.scm
@@ -0,0 +1,688 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
+;;; Copyright © 2022 Christopher Baines <mail@cbaines.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages java-xml)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages java)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system ant)
+ #:use-module (guix utils))
+
+(define-public java-simple-xml
+ (package
+ (name "java-simple-xml")
+ (version "2.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/simple/simple-xml-"
+ version ".zip"))
+ (sha256
+ (base32
+ "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
+ (patches (search-patches "java-simple-xml-fix-tests.patch"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "build"
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-jars "jar"))
+ (add-before 'check 'disable-failing-test
+ (lambda _
+ ;; This test sometimes fails with an out of memory exception
+ (delete-file
+ "test/src/org/simpleframework/xml/core/NoAnnotationsRequiredTest.java"))))))
+ (native-inputs
+ (list unzip))
+ (home-page "http://simple.sourceforge.net/")
+ (synopsis "XML serialization framework for Java")
+ (description "Simple is a high performance XML serialization and
+configuration framework for Java. Its goal is to provide an XML framework
+that enables rapid development of XML configuration and communication systems.
+This framework aids the development of XML systems with minimal effort and
+reduced errors. It offers full object serialization and deserialization,
+maintaining each reference encountered.")
+ (license license:asl2.0)))
+
+;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
+;; xml-apis.jar and xml-apis-1.4.01.jar.
+(define-public java-jaxp
+ (package
+ (name "java-jaxp")
+ (version "1.4.01")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/xerces/xml-commons/source/"
+ "xml-commons-external-" version "-src.tar.gz"))
+ (sha256
+ (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jaxp.jar"
+ #:jdk ,icedtea-8
+ #:source-dir ".."
+ #:tests? #f)); no tests
+ (home-page "http://xerces.apache.org/xml-commons/")
+ (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
+ (description "Jaxp from the Apache XML Commons project is used by
+the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
+
+@itemize
+@item Document Object Model (DOM)
+@item Simple API for XML (SAX)
+@item Java APIs for XML Processing (JAXP)
+@item Transformation API for XML (TrAX)
+@item Document Object Model (DOM) Load and Save
+@item JSR 206 Java API for XML Processing
+@end itemize")
+ (license (list license:asl2.0
+ license:w3c ;; Files under org.w3c
+ license:public-domain)))) ;; org.xml.sax
+
+(define-public java-apache-xml-commons-resolver
+ (package
+ (name "java-apache-xml-commons-resolver")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/xerces/xml-commons/"
+ "xml-commons-resolver-" version ".tar.gz"))
+ (sha256
+ (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name (string-append "xml-resolver.jar")
+ #:tests? #f)); no tests
+ (inputs
+ (list java-junit))
+ (home-page "http://xerces.apache.org/xml-commons/")
+ (synopsis "Catalog-based entity and URI resolution")
+ (description "The resolver class implements the full semantics of OASIS Technical
+Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
+2001 Committee Specification of OASIS XML Catalogs.
+
+It also includes a framework of classes designed to read catalog files
+in a number of formats:
+
+@itemize
+@item The plain-text flavor described by TR9401.
+@item The XCatalog XML format defined by John Cowan
+@item The XML Catalog format defined by the OASIS Entity Resolution
+ Technical Committee.
+@end itemize")
+ (license license:asl2.0)))
+
+;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
+;; This package is a bootstrap version without dependencies on dom4j and xom.
+(define java-jaxen-bootstrap
+ (package
+ (name "java-jaxen-bootstrap")
+ (version "1.1.6")
+ (source (origin
+ (method url-fetch)
+ ;; No release on github
+ (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
+ version "/jaxen-" version "-sources.jar"))
+ (sha256
+ (base32
+ "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jaxen.jar"
+ #:source-dir "src"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'remove-dom4j
+ (lambda _
+ (delete-file-recursively "src/org/jaxen/dom4j")
+ (delete-file-recursively "src/org/jaxen/xom")
+ #t)))))
+ (inputs
+ `(("java-jdom" ,java-jdom)))
+ (home-page "https://github.com/jaxen-xpath/jaxen")
+ (synopsis "XPath library")
+ (description "Jaxen is an XPath library written in Java. It is adaptable
+to many different object models, including DOM, XOM, dom4j, and JDOM. It is
+also possible to write adapters that treat non-XML trees such as compiled
+Java byte code or Java beans as XML, thus enabling you to query these trees
+with XPath too.")
+ (license license:bsd-3)))
+
+(define-public java-jaxen
+ (package
+ (inherit java-jaxen-bootstrap)
+ (name "java-jaxen")
+ (inputs
+ (list java-jdom java-xom java-dom4j))))
+
+(define-public java-xom
+ (package
+ (name "java-xom")
+ (version "127")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/elharo/xom")
+ (commit (string-append "XOM_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jh6y03g5zzdhsb5jm6ms1xnamr460qmn96y3w6aw0ikfwqlg0bq"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file
+ (find-files "." "\\.jar$"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "xom.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
+ (add-before 'configure 'fix-tagsoup-dep
+ (lambda _
+ ;; FIXME: Where is tagsoup source?
+ (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
+ #t)))))
+ (inputs
+ (list java-jdom java-junit java-classpathx-servletapi
+ java-jaxen-bootstrap java-xerces))
+ (home-page "https://xom.nu/")
+ (synopsis "XML Object Model")
+ (description "XOM is a new XML Object Model for processing XML with Java
+that strives for correctness and simplicity.")
+ ;; 2.1 only
+ (license license:lgpl2.1)))
+
+(define-public java-xsdlib
+ (package
+ (name "java-xsdlib")
+ (version "2013.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://repo1.maven.org/maven2/com/sun/msv/"
+ "datatype/xsd/xsdlib/" version "/xsdlib-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:jar-name "xsdlib.jar"
+ #:jdk ,icedtea-8))
+ (inputs
+ (list java-xerces))
+ (home-page (string-append "https://web.archive.org/web/20161127144537/"
+ "https://msv.java.net//"))
+ (synopsis "Sun Multi-Schema Validator")
+ (description "Xsdlib contains an implementation of sun.com.msv, an XML
+validator.")
+ (license license:bsd-2)))
+
+(define-public java-xpp3
+ (package
+ (name "java-xpp3")
+ (version "1.1.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://ci.guix.gnu.org/file/"
+ "xpp3-1.1.4_src.tgz"
+ "/sha256/"
+ "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
+ (file-name (string-append name "-" version "_src.tgz"))
+ (sha256
+ (base32
+ "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:build-target "jar"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-jars "build")))))
+ (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
+ (synopsis "Streaming pull XML parser")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is a stable XmlPull parsing engine that is based on ideas from XPP
+and in particular XPP2 but completely revised and rewritten to take the best
+advantage of JIT JVMs.")
+ (license (license:non-copyleft "file://LICENSE.txt"))))
+
+(define-public java-xmlpull2
+ (package
+ (name "java-xmlpull2")
+ (version "2.1.10")
+ (source (origin
+ (method url-fetch)
+ ;; Unfortunately, archive.org does not have a copy of this file.
+ (uri (string-append "https://ftp.fau.de/gentoo/distfiles/"
+ "PullParser" version ".tgz"))
+ (sha256
+ (base32
+ "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f; no tests
+ #:build-target "impl"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install (install-jars "build/lib")))))
+ (home-page (string-append "https://web.archive.org/web/20210225153105/"
+ "https://www.extreme.indiana.edu/"))
+ (synopsis "Streaming pull XML parser")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is in maintenance mode.")
+ (license (license:non-copyleft "file:///LICENSE.txt"))))
+
+(define-public java-xmlpull-api-v1
+ (package
+ (name "java-xmlpull-api-v1")
+ (version "1.1.3.4b")
+ (source (origin
+ ;; The package is originally from Extreme! Lab, but the website
+ ;; is now gone. This repositories contains the sources of the
+ ;; latest version.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aslom/xmlpull-api-v1")
+ ;; No releases, this is the latest commit
+ (commit "abeaa4aa87b2625af70c32f658f44e11355fe568")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15bdqxfncnakskna4m9gsh4f9iczxy83qxn2anqiqd15z406a5ih"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "lib")
+ (mkdir-p "lib")
+ ;; prevents a failure in "dist_lite"
+ (substitute* "build.xml"
+ (("README.html") "README.md"))))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:test-target "junit"
+ #:build-target "dist"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version))
+ (java (string-append out "/share/java"))
+ (project (string-append
+ "xmlpull_"
+ ,(string-join (string-split version #\.) "_"))))
+ (mkdir-p doc)
+ (copy-recursively (string-append "build/dist/" project "/doc/")
+ doc)
+ (mkdir-p java)
+ (copy-file (string-append "build/dist/" project "/" project ".jar")
+ (string-append java "/" project ".jar")))
+ )))))
+ (home-page "https://github.com/aslom/xmlpull-api-v1")
+ (synopsis "XML pull parsing API")
+ (description "XmlPull v1 API is a simple to use XML pull parsing API. XML
+pull parsing allows incremental (sometimes called streaming) parsing of XML
+where application is in control - the parsing can be interrupted at any given
+moment and resumed when application is ready to consume more input.")
+ (license license:public-domain)))
+
+(define-public java-dom4j
+ (package
+ (name "java-dom4j")
+ (version "2.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dom4j/dom4j")
+ (commit (string-append "version-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin ;; Delete bundled jar archives.
+ (for-each delete-file (find-files "." ".*\\.jar"))
+ #t))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "dom4j.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
+ ;; dependency on itself through jflex.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-jaxen-sources
+ ;; java-jaxen-bootstrap is not enough. These files have a circular
+ ;; dependency and there is no subset of dom4j that would allow
+ ;; breaking the circle.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "jaxen-sources")
+ (with-directory-excursion "jaxen-sources"
+ (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
+ (mkdir-p "src/main/java/org/jaxen/dom4j")
+ (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
+ "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
+ (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
+ "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
+ #t))
+ (add-before 'build 'fix-old-xpp2
+ (lambda _
+ ;; This package normally depends on xpp2 2.0, but version 2.1.10
+ ;; is the only version whose source code is published.
+ (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
+ (("public void resetStartTag")
+ "public boolean removeAttributeByRawName(String name) {\n
+ return false;\n
+}\n
+public boolean removeAttributeByName(String name, String name2) {\n
+ return false;\n
+}\n\npublic void resetStartTag")
+ (("Atttribute") "Attribute"))
+ #t)))))
+ (inputs
+ `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
+ ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
+ ("java-xmlpull2" ,java-xmlpull2)
+ ("java-xpp3" ,java-xpp3)
+ ("java-xsdlib" ,java-xsdlib)))
+ (native-inputs
+ (list java-testng java-xerces))
+ (home-page "https://dom4j.github.io/")
+ (synopsis "Flexible XML framework for Java")
+ (description "Dom4j is a flexible XML framework for Java. DOM4J works
+with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
+low memory footprint.")
+ ;; some BSD-like 5-clause license
+ (license (license:non-copyleft "file://LICENSE"))))
+
+(define-public java-kxml2
+ (package
+ (name "java-kxml2")
+ (version "2.4.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stefanhaustein/kxml2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0g6d8c9r9sh3x04sf4wdpgwvhkqvk11k3kq9skx91i60h4vn01hg"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "kxml2.jar"
+ #:source-dir "src/main/java"
+ #:test-include (list "TestWb.java")
+ ;; Test failure: it was expected to get an XML entity but got the
+ ;; equivalent Unicode character instead.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t)))))
+ (inputs
+ (list java-xpp3))
+ (native-inputs
+ (list java-junit))
+ (home-page "http://kxml.org")
+ (synopsis "XML pull parser")
+ (description "kXML is a small XML pull parser, specially designed for
+constrained environments such as Applets, Personal Java or devices compliant
+with the Mobile Information Device Profile (MIDP).")
+ (license license:expat)))
+
+(define-public java-stax
+ (package
+ (name "java-stax")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
+ version "/stax-" version "-sources.jar"))
+ (sha256
+ (base32
+ "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "stax.jar"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-utf8
+ (lambda _
+ ;; This file is ISO-8859-1 but java expects UTF-8.
+ ;; Remove special characters in comments.
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ (substitute* "src/com/wutka/dtd/Scanner.java"
+ (("//.*") "\n")))
+ #t)))))
+ (home-page "https://repo1.maven.org/maven2/stax/stax/")
+ (synopsis "Streaming API for XML")
+ (description "This package provides the reference implementation of the
+@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
+and from a Java application. It provides a standard pull parser interface.")
+ (license license:asl2.0)))
+
+(define-public java-jettison
+ (package
+ (name "java-jettison")
+ (version "1.3.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/codehaus/jettison")
+ (commit (string-append "jettison-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15sydmi5chdh4126qc7v8bsrp7fp4ldaya8a05iby4pq2324q0qw"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "jettison.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude (list "**/Abstract*.java"
+ ;; Abstract classes
+ "**/DOMTest.java"
+ "**/BadgerFishDOMTest.java"
+ "**/MappedDOMTest.java")))
+ (native-inputs
+ (list java-junit))
+ (home-page "https://github.com/codehaus/jettison")
+ (synopsis "StAX implementation for JSON")
+ (description "Jettison is a Java library for converting XML to JSON and
+vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
+implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
+@code{Mapped} and @code{BadgerFish} conventions.")
+ (license license:asl2.0)))
+
+(define-public java-jdom2
+ (package
+ (name "java-jdom")
+ (version "2.0.6.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hunterhacker/jdom")
+ (commit (string-append "JDOM-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1r4pwl0z7hm45v9l2wbq3fjmqi13zmwzbrggyqizrwv31kghhx56"))))
+ (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 "Jdom is a Java-based solution for accessing, manipulating, and
+outputting XML data from Java code.")
+ (license license:bsd-4)))
+
+(define-public java-xstream
+ (package
+ (name "java-xstream")
+ (version "1.4.16")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/x-stream/xstream")
+ (commit (string-append
+ "XSTREAM_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x))
+ version)))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16k2mc63h2fw7lxv74qmhg4p8q9hfrw114daa6nxwnpv08cnq755"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "xstream.jar"
+ ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system.
+ #:tests? #f
+ #:jdk ,icedtea-8
+ #:source-dir "xstream/src/java"))
+ (inputs
+ `(("java-jdom" ,java-jdom)
+ ("java-jdom2" ,java-jdom2)
+ ("java-cglib" ,java-cglib)
+ ("java-joda-time" ,java-joda-time)
+ ("java-jettison" ,java-jettison)
+ ("java-xom" ,java-xom)
+ ("java-mxparser" ,java-mxparser)
+ ("java-xpp3" ,java-xpp3)
+ ("java-dom4j" ,java-dom4j)
+ ("java-stax2-api" ,java-stax2-api)
+ ("java-woodstox-core" ,java-woodstox-core)
+ ("java-kxml2" ,java-kxml2)
+ ("java-stax" ,java-stax)))
+ (home-page "https://x-stream.github.io")
+ (synopsis "XML serialization library")
+ (description "XStream is a simple library to serialize Java objects to XML
+and back again.")
+ (license license:bsd-3)))
+
+(define-public java-mxparser
+ (package
+ (name "java-mxparser")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/x-stream/mxparser")
+ (commit (string-append "v-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i3jrjbz4hgf62fm1ix7nlcmhi4kcv4flqsfvh7a3l2v7nsp5ryb"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "mxparser.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t)))))
+ (propagated-inputs
+ (list java-xmlpull-api-v1))
+ (native-inputs
+ (list java-junit))
+ (home-page "https://github.com/x-stream/mxparser")
+ (synopsis "Streaming pull XML parser forked from @code{java-xpp3}")
+ (description "Xml Pull Parser (in short XPP) is a streaming pull XML
+parser and should be used when there is a need to process quickly and
+efficiently all input elements (for example in SOAP processors). This
+package is a stable XmlPull parsing engine that is based on ideas from XPP
+and in particular XPP2 but completely revised and rewritten to take the best
+advantage of JIT JVMs.
+
+MXParser is a fork of xpp3_min 1.1.7 containing only the parser with merged
+changes of the Plexus fork. It is an implementation of the XMLPULL V1 API
+(parser only).")
+ (license (license:non-copyleft "file://LICENSE.txt"))))
+
+
+
+
+
+
+
+
+
+