Subject: [PATCH 09/12] gnu: Add java-commons-io.

From: Hartmut Goebel <[email-masked]>
Date: Thu, 11 Jul 2019 22:26:31 +0200

* gnu/packages/java.scm (java-commons-io): New variable.
---
 gnu/packages/java.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e200296..3af8cd0 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1428,3 +1428,45 @@ for your architecture which is provided by the jsvc package.
 
 This is a part of the Apache Commons Project.")
     (license license:asl2.0)))
+
+(define-public java-commons-io
+  (package
+    (name "java-commons-io")
+    (version "2.5")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "io" version))
+      (sha256 (base32 "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3"))))
+    (build-system ant-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'symlink-junit.jar
+           (lambda* (#:key source #:allow-other-keys)
+             ; the existance of this file is taken as indicator whether test
+             ; dependencis will to be downloaded.
+             (let ((junit (assoc-ref inputs "java-junit"))
+                   (junit-version "4.12")) ; from build.xml
+               (mkdir-p "lib")
+               (symlink (string-append junit "/share/java/junit.jar")
+                        (string-append "lib/junit-" junit-version ".jar")))))
+         (add-after 'build 'build-javadoc ant-build-javadoc)
+         (add-after 'configure 'patch-build.xml
+           (lambda* _
+             (substitute* "build.xml"
+               ; set current year to a fixed value, you may want to update
+               ; this when updating the package version
+               (("<format property=\"current.year\"[^>]+>")
+                "<format property=\"current.year\" pattern=\"2016\"/>"))))
+         (replace 'install (install-jars "target"))
+         (add-after 'install 'install-doc (install-javadoc "target/apidocs")))))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://commons.apache.org/io/")
+    (synopsis "Common useful IO related classes")
+    (description "Commons-IO contains utility classes, stream implementations,
+file filters and endian classes.")
+    (license license:asl2.0)))
-- 
2.7.4