summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2017-11-18 21:48:44 +0100
committerJulien Lepiller <julien@lepiller.eu>2018-02-10 19:03:54 +0100
commit0158ea8a82bf60555665addc17dc8895bf4efe36 (patch)
tree79fcc25c1505f13bd7a2d22dfcb2b9a005d2b7b0 /gnu
parentd57fd728d7df0c992d5f0420fbd61eea9150d705 (diff)
downloadguix-0158ea8a82bf60555665addc17dc8895bf4efe36.tar.gz
gnu: Add java-joda-time.
* gnu/packages/java.scm (java-joda-time): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/java.scm64
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e73cd3de52..0c8c2abdd9 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -8114,3 +8114,67 @@ Dependency Injection (CDI).")
 conversion between Objects and Strings.  It is not intended to tackle the
 wider problem of Object to Object transformation.")
     (license license:asl2.0)))
+
+(define-public java-joda-time
+  (package
+    (name "java-joda-time")
+    (version "2.9.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/JodaOrg/joda-time/archive/v"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1i9x91mi7yg2pasl0k3912f1pg46n37sps6rdb0v1gs8hj9ppwc1"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "java-joda-time.jar"
+       #:source-dir "src/main/java"
+       #:test-include (list "**/Test*.java")
+       ;; There is no runnable test in these files
+       #:test-exclude (list "**/Test*Chronology.java" "**/Test*Field.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-resources
+           (lambda _
+             (mkdir-p "build/classes/org/joda/time/tz/data")
+             (mkdir-p "build/classes/org/joda/time/format")
+             ;; This will produce an exception, but it's all right.
+             (zero? (system* "java" "-cp"
+                             (string-append "build/classes:" (getenv "CLASSPATH"))
+                             "org.joda.time.tz.ZoneInfoCompiler"
+                             "-src" "src/main/java/org/joda/time/tz/src"
+                             "-dst" "build/classes/org/joda/time/tz/data"
+                             "africa" "antarctica" "asia" "australasia"
+                             "europe" "northamerica" "southamerica"
+                             "pacificnew" "etcetera" "backward" "systemv"))
+             (for-each (lambda (f)
+                         (copy-file f (string-append
+                                        "build/classes/org/joda/time/format/"
+                                        (basename f))))
+               (find-files "src/main/java/org/joda/time/format" ".*.properties"))
+             #t))
+         (add-before 'install 'regenerate-jar
+           (lambda _
+             ;; We need to regenerate the jar file to add generated data.
+             (delete-file "build/jar/java-joda-time.jar")
+             (zero? (system* "ant" "jar"))))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (mkdir-p "build/test-classes/org/joda/time/tz/data")
+             (copy-file "src/test/resources/tzdata/ZoneInfoMap"
+                        "build/test-classes/org/joda/time/tz/data/ZoneInfoMap")
+             (copy-recursively "src/test/resources" "build/test-classes")
+             #t)))))
+    (inputs
+     `(("java-joda-convert" ,java-joda-convert)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("tzdata" ,tzdata)))
+    (home-page "http://www.joda.org/joda-time/")
+    (synopsis "Replacement for the Java date and time classes")
+    (description "Joda-Time is a replacement for the Java date and time
+classes prior to Java SE 8.")
+    (license license:asl2.0)))