From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eGTu4-0007SU-8o for guix-patches@gnu.org; Sun, 19 Nov 2017 13:01:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eGTu3-0003qC-8Y for guix-patches@gnu.org; Sun, 19 Nov 2017 13:01:12 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:39207) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eGTu3-0003q7-53 for guix-patches@gnu.org; Sun, 19 Nov 2017 13:01:11 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eGTu2-0006QF-U1 for guix-patches@gnu.org; Sun, 19 Nov 2017 13:01:10 -0500 Subject: [bug#29359] [PATCH 22/31] gnu: Add java-dom4j. Resent-Message-ID: From: Julien Lepiller Date: Sun, 19 Nov 2017 18:57:56 +0100 Message-Id: <20171119175805.902-22-julien@lepiller.eu> In-Reply-To: <20171119175805.902-1-julien@lepiller.eu> References: <20171119175805.902-1-julien@lepiller.eu> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 29359@debbugs.gnu.org * gnu/packages/java.scm (java-dom4j): New variable. --- gnu/packages/java.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 2c535ceef..14a308348 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -8244,3 +8244,74 @@ efficiently all input elements (for example in SOAP processors).") parser and should be used when there is a need to process quickly and efficiently all input elements (for example in SOAP processors).") (license license:public-domain))) + +(define-public java-dom4j + (package + (name "java-dom4j") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/dom4j/dom4j/archive/" + "version-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "101drpnw6agmcvsi1jrfi0kn97r7liazrh5jbrip9vx26axn2fx9")) + (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" + #:tests? #f; Requires xalan, but xalan -> java-cup -> jflex -> java-cup... + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-jaxen-sources + ;; jaxen-no-rec-deps 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 we can only package + ;; version 2.1.10. + (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java" + (("public void resetStartTag") + (string-append + "public boolean removeAttributeByRawName(String name) {\n" + " return false;\n" + "}\n" + "public boolean removeAttributeByName(String name, String name2) {\n" + " return false;\n" + "}\n" + "\n" + "public void resetStartTag")) + (("Atttribute") "Attribute")) + #t))))) + (inputs + `(("java-jaxen-no-rec-deps" ,java-jaxen-no-rec-deps) + ("java-jaxen-sources" ,(package-source java-jaxen-no-rec-deps)) + ("java-xmlpull2" ,java-xmlpull2) + ("java-xpp3" ,java-xpp3) + ("java-xsdlib" ,java-xsdlib))) + (native-inputs + `(("java-testng" ,java-testng) + ("java-xerces" ,java-xerces))) + (home-page "https://dom4j.github.io/") + (synopsis "Flexible XML framework for Java") + (description "Dom4j is a flexible XML framework for Java.") + ;; some BSD-like 5-clause license + (license (license:non-copyleft "file://LICENSE")))) -- 2.15.0