diff options
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r-- | gnu/packages/java.scm | 478 |
1 files changed, 463 insertions, 15 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d9ea5526b8..65f8d6aa77 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3,13 +3,13 @@ ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2019 Carlo Zancanaro <carlo@zancanaro.id.au> -;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2017, 2018, 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> -;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2320,6 +2320,114 @@ new Date();")) `(("java-junit" ,java-junit) ,@(package-inputs ant/java8))))) +(define-public java-openjfx-build + (package + (name "java-openjfx-build") + ;; This is a java-8 version + (version "8.202") + (source (origin + (method hg-fetch) + (uri (hg-reference + (url "http://hg.openjdk.java.net/openjfx/8u-dev/rt") + (changeset (string-append + (string-join (string-split version #\.) "u") + "-ga")))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-openjfx.jar" + #:source-dir "buildSrc/src/main/java" + #:test-dir "buildSrc/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'generate-jsl-parser + (lambda _ + (invoke "antlr3" "-o" + "buildSrc/src/main/java/com/sun/scenario/effect/compiler" + "buildSrc/src/main/antlr/JSL.g")))))) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "https://openjfx.io") + (synopsis "Graphical application toolkit in Java") + (description "OpenJFX is a client application platform for desktop, +mobile and embedded systems built on Java. Its goal is to produce a +modern, efficient, and fully featured toolkit for developing rich client +applications. This package contains base classes for the OpenJFX +distribution and helper classes for building other parts of the +distribution.") + (license license:gpl2))) ;gpl2 only, with classpath exception + +(define-public java-openjfx-base + (package (inherit java-openjfx-build) + (name "java-openjfx-base") + (arguments + `(#:jar-name "java-openjfx-base.jar" + #:source-dir "modules/base/src/main/java:modules/base/src/main/java8:modules/base/src/main/version-info" + #:test-dir "modules/base/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'check 'remove-empty-file + (lambda _ + (with-directory-excursion "modules/base/src/test/java" + ;; These files are completely commented, but junit expects them to + ;; contain a class, so tests fail. + (delete-file + "com/sun/javafx/property/adapter/PropertyDescriptorTest.java") + (delete-file + "com/sun/javafx/property/adapter/ReadOnlyPropertyDescriptorTest.java") + (delete-file "javafx/beans/property/PropertiesTest.java") + (delete-file + "javafx/beans/property/adapter/ReadOnlyJavaBeanPropertyBuilder_General_Test.java") + ;; This one fails + (delete-file "com/sun/javafx/runtime/VersionInfoTest.java")) + #t))))) + (propagated-inputs + `(("java-openjfx-build" ,java-openjfx-build))) + (description "OpenJFX is a client application platform for desktop, +mobile and embedded systems built on Java. Its goal is to produce a +modern, efficient, and fully featured toolkit for developing rich client +applications. This package contains base classes for the OpenJFX +distribution."))) + +(define-public java-openjfx-graphics + (package (inherit java-openjfx-build) + (name "java-openjfx-graphics") + (arguments + `(#:jar-name "java-openjfx-graphics.jar" + #:source-dir "modules/graphics/src/main/java" + #:tests? #f; require X + #:test-dir "modules/graphics/src/test")) + (propagated-inputs + `(("java-openjfx-base" ,java-openjfx-base) + ("java-swt" ,java-swt))) + (description "OpenJFX is a client application platform for desktop, +mobile and embedded systems built on Java. Its goal is to produce a +modern, efficient, and fully featured toolkit for developing rich client +applications. This package contains graphics-related classes for the +OpenJFX distribution."))) + +(define-public java-openjfx-media + (package (inherit java-openjfx-build) + (name "java-openjfx-media") + (propagated-inputs + `(("java-openjxf-graphics" ,java-openjfx-graphics))) + (arguments + `(#:jar-name "java-openjfx-media.jar" + #:source-dir "modules/media/src/main/java" + #:tests? #f)); no tests + (description "OpenJFX is a client application platform for desktop, +mobile and embedded systems built on Java. Its goal is to produce a +modern, efficient, and fully featured toolkit for developing rich client +applications. This package contains media-related classes for the +OpenJFX distribution."))) + (define-public javacc-4 (package (name "javacc") @@ -2394,7 +2502,27 @@ debugging, etc.") #:test-target "test" #:phases (modify-phases %standard-phases - (replace 'install (install-jars "target"))))) + (replace 'install (install-jars "target")) + (add-after 'install 'install-bin + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/java")) + (bin (string-append out "/bin")) + (javacc (string-append bin "/javacc"))) + (mkdir-p bin) + (with-output-to-file javacc + (lambda _ + (display + (string-append "#!/bin/sh\n" + (assoc-ref inputs "jdk") "/bin/java" + " -cp " dir "/javacc.jar" " `basename $0`" " $*")))) + (chmod javacc #o755) + ;; symlink to different names to affect the first argument and + ;; change the behavior of the jar file. + (symlink javacc (string-append bin "/jjdoc")) + (symlink javacc (string-append bin "/jjtree")) + #t)))))) + (native-inputs `(("javacc" ,javacc-4))))) @@ -4981,6 +5109,115 @@ expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet contexts, DOM etc, including mixtures thereof.") (license license:asl2.0))) +(define-public java-commons-pool + (package + (name "java-commons-pool") + (version "2.6.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/pool/source/" + "commons-pool2-" version "-src.tar.gz")) + (sha256 + (base32 + "1fi1hgqmq01bs6azbj3sfswxzadp2r8sjjfiq6ryilz1m50kvrv6")))) + (arguments + `(#:jar-name "common-pool.jar" + #:source-dir "src/main/java" + #:test-exclude + (list "**/PerformanceTest.java"))) + (build-system ant-build-system) + (inputs + `(("java-cglib" ,java-cglib))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-asm" ,java-asm) + ("java-objenesis" ,java-objenesis))) + (home-page "https://commons.apache.org/proper/commons-pool/") + (synopsis "Object-pooling API in Java") + (description "The commons-pool package provides an object-pooling API +and a number of object pool implementations. This package defines a +handful of pooling interfaces and some base classes that may be useful when +creating new pool implementations.") + (license license:asl2.0))) + +(define-public java-commons-dbcp + (package + (name "java-commons-dbcp") + (version "2.6.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/dbcp/source/" + "commons-dbcp2-" version "-src.tar.gz")) + (sha256 + (base32 + "0axbvcbnf2l70fc3ybrlp3siw2w4ka9mia2pnx4py8gz54cpw3rc")))) + (arguments + `(#:source-dir "src/main/java" + #:jar-name "java-commons-dbcp.jar" + #:tests? #f)); requires apache-geronimo + (inputs + `(("java-commons-pool" ,java-commons-pool) + ("java-commons-logging" ,java-commons-logging-minimal) + ("java-jboss-transaction-api-spec" ,java-jboss-transaction-api-spec))) + (native-inputs + `(("java-junit" ,java-junit))) + (build-system ant-build-system) + (home-page "https://commons.apache.org/proper/commons-dbcp/") + (synopsis "Database Connection Pool for Java") + (description "Commons-dbcp allows you to share a pool of database +connections between users. Creating a new connection for each user can be +time consuming and even unfeasible when the number of simultaneous users is +very large. This package provides a way to share a poole of connections to +reduce that load.") + (license license:asl2.0))) + +(define-public java-commons-jcs + (package + (name "java-commons-jcs") + (version "2.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/jcs/source/" + "commons-jcs-dist-" version "-src.tar.gz")) + (sha256 + (base32 + "0syhq2npjbrl0azqfjm0gvash1qd5qjy4qmysxcrqjsk0nf9fa1q")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-jcs.jar" + #:source-dir "commons-jcs-core/src/main/java" + #:test-dir "commons-jcs-core/src/test" + #:tests? #f; requires hsqldb + #:phases + (modify-phases %standard-phases + (add-before 'build 'prepare + (lambda _ + (with-directory-excursion + "commons-jcs-core/src/main/java/org/apache/commons/jcs" + (substitute* + "auxiliary/disk/jdbc/dsfactory/SharedPoolDataSourceFactory.java" + (("commons.dbcp") "commons.dbcp2") + ((".*\\.setMaxActive.*") "")) + ;;; Remove dependency on velocity-tools + (delete-file "admin/servlet/JCSAdminServlet.java")) + #t))))) + (propagated-inputs + `(("java-classpathx-servletapi" ,java-classpathx-servletapi) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-httpclient" ,java-commons-httpclient) + ("java-commons-dbcp" ,java-commons-dbcp))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "https://commons.apache.org/proper/commons-jcs/") + (synopsis "Distributed caching system in Java") + (description "JCS is a distributed caching system written in Java. It +is intended to speed up applications by providing a means to manage cached +data of various dynamic natures. Like any caching system, JCS is most useful +for high read, low put applications. Latency times drop sharply and +bottlenecks move away from the database in an effectively cached system.") + (license license:asl2.0))) + (define-public java-jsr250 (package (name "java-jsr250") @@ -6742,14 +6979,16 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" - (("<exec") "<copy todir=\"${classes.dir}\"> + (("target name=\"compile\">") + "target name=\"compile\"> +<copy todir=\"${classes.dir}\"> <fileset dir=\"tool/src/main/resources\"> <include name=\"**/*.stg\"/> <include name=\"**/*.st\"/> <include name=\"**/*.sti\"/> <include name=\"**/STLexer.tokens\"/> </fileset> -</copy><exec")) +</copy>")) #t))))) (native-inputs `(("antlr" ,antlr2) @@ -6855,14 +7094,16 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")) (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" - (("<exec") "<copy todir=\"${classes.dir}\"> + (("target name=\"compile\">") + "target name=\"compile\"> +<copy todir=\"${classes.dir}\"> <fileset dir=\"tool/src/main/resources\"> <include name=\"**/*.stg\"/> <include name=\"**/*.st\"/> <include name=\"**/*.sti\"/> <include name=\"**/STLexer.tokens\"/> </fileset> -</copy><exec")) +</copy>")) #t))))) (native-inputs `(("antlr" ,antlr2) @@ -6874,7 +7115,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")) ("antlr" ,antlr2) ("antlr3" ,antlr3-3.1))))) -(define antlr3-3.1 +(define-public antlr3-3.1 (package (inherit antlr3) (version "3.1") @@ -6932,14 +7173,16 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")) (add-before 'build 'fix-build-xml (lambda _ (substitute* "build.xml" - (("<exec") "<copy todir=\"${classes.dir}\"> + (("target name=\"compile\">") + "target name=\"compile\"> +<copy todir=\"${classes.dir}\"> <fileset dir=\"src\"> <include name=\"**/*.stg\"/> <include name=\"**/*.st\"/> <include name=\"**/*.sti\"/> <include name=\"**/STLexer.tokens\"/> </fileset> -</copy><exec")) +</copy>")) #t))))) (native-inputs `(("antlr" ,antlr2))) @@ -10819,14 +11062,16 @@ OSGi Service Registry is a goal of this project.") (define-public java-eclipse-sisu-plexus (package (name "java-eclipse-sisu-plexus") - (version "0.3.3") + (version "0.3.4") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/eclipse/sisu.plexus/" - "archive/releases/" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/eclipse/sisu.plexus.git") + (commit (string-append "releases/" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0lbj7nxy5j0z71k407zbb82icfqh7midrfk0fb3fa3jzdjz0d9d9")) + "17mjlajnsqnk07cc58h1qpxrif85yb2m2y0pyba48yjjgikk8r9f")) (modules '((guix build utils))) (snippet '(begin @@ -11222,3 +11467,206 @@ the application using Java to Lisp integration APIs.") license:bsd-3 ;; jfli is released under CPL 1.0 license:cpl1.0)))) + +(define-public java-jsonp-api + (package + (name "java-jsonp-api") + (version "1.1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eclipse-ee4j/jsonp") + (commit (string-append version "-RELEASE")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nxq16lrx7i87hgyj5rzcwilvr67h0i299gygfn8f5vs4n7n59vy")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jsonp-api.jar" + #:tests? #f + #:source-dir "api/src/main/java" + #:test-dir "api/src/test")) + (home-page "https://eclipse-ee4j.github.io/jsonp/") + (synopsis "JSON Processing in Java") + (description "JSON Processing (JSON-P) is a Java API to process (e.g. +parse, generate, transform and query) JSON messages. It produces and +consumes JSON text in a streaming fashion (similar to StAX API for XML) +and allows to build a Java object model for JSON text using API classes +(similar to DOM API for XML).") + ;; either gpl2 only with classpath exception, or epl2.0. + (license (list license:gpl2 + license:epl2.0)))) + +(define-public java-jsonp-impl + (package + (inherit java-jsonp-api) + (name "java-jsonp-impl") + (arguments + `(#:jar-name "jsonp-impl.jar" + #:tests? #f + #:source-dir "impl/src/main/java" + #:test-dir "impl/src/test")) + (propagated-inputs + `(("java-jsonp-api" ,java-jsonp-api))) + (description "JSON Processing (JSON-P) is a Java API to process (e.g. +parse, generate, transform and query) JSON messages. This package contains +a reference implementation of that API."))) + +(define-public java-xmp + (package + (name "java-xmp") + (version "5.1.3") + (source (origin + (method url-fetch) + (uri (string-append "http://download.macromedia.com/pub/developer" + "/xmp/sdk/XMPCoreJava-" version ".zip")) + (sha256 + (base32 + "14nai2mmsg7l5ya2y5mx4w4lr1az3sk2fjz6hiy4zdrsavgvl1g7")))) + (build-system ant-build-system) + (arguments + `(#:build-target "build" + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "XMPCore") + #t)) + (add-before 'build 'fix-timestamp + (lambda _ + (substitute* "build.xml" + (("\\$\\{BuildDate\\}") "1970 Jan 01 00:00:00-GMT")) + #t)) + (replace 'install + (install-jars ".")) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively + "docs" + (string-append (assoc-ref outputs "out") "/share/doc/java-xmp")) + #t))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://www.adobe.com/devnet/xmp.html") + (synopsis "Extensible Metadat Platform (XMP) support in Java") + (description "Adobe's Extensible Metadata Platform (XMP) is a labeling +technology that allows you to embed data about a file, known as metadata, +into the file itself. The XMP Toolkit for Java is based on the C++ XMPCore +library and the API is similar.") + (license license:bsd-3))) + +(define-public java-metadata-extractor + (package + (name "java-metadata-extractor") + (version "2.11.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/drewnoakes/metadata-extractor") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06yrq0swrl1r40yjbk5kqzjxr04jlkq9lfi711jvfgjf5kp2qinj")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "metadata-extractor.jar" + #:source-dir "Source" + #:test-dir "Tests" + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-test-dir + (lambda _ + (substitute* "build.xml" + (("/java\">") "\">")) + #t))))) + (propagated-inputs + `(("java-xmp" ,java-xmp))) + (native-inputs + `(("java-hamcrest-core" ,java-hamcrest-core) + ("java-junit" ,java-junit))) + (home-page "https://github.com/drewnoakes/metadata-extractor") + (synopsis "Extract metadata from image and video files") + (description "Metadata-extractor is a straightforward Java library for +reading metadata from image files. It is able to read metadata in Exif, +IPTC, XMP, ICC and more formats.") + (license license:asl2.0))) + +(define-public java-svg-salamander + (package + (name "java-svg-salamander") + (version "1.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/blackears/svgSalamander") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zv3kjdkf6iqf02x6ln76254y634j2ji448y706a65lsbfjmmicf")) + (modules '((guix build utils))) + (snippet + `(for-each delete-file (find-files "." ".*.jar"))) + (patches + (search-patches "java-svg-salamander-Fix-non-det.patch")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "svg-core") + #t)) + (add-before 'build 'copy-jars + (lambda* (#:key inputs #:allow-other-keys) + (copy-file (car (find-files (assoc-ref inputs "javacc") "\\.jar$")) + "../libraries/javacc.jar") + (copy-file (car (find-files (assoc-ref inputs "ant") "ant\\.jar$")) + "../libraries/ant.jar") + #t)) + (replace 'install + (install-jars "dist"))))) + (native-inputs + `(("javacc" ,javacc))) + (home-page "https://github.com/blackears/svgSalamander") + (synopsis "SVG engine for Java") + (description "SVG Salamander is an SVG engine for Java that's designed +to be small, fast, and allow programmers to use it with a minimum of fuss. +It's in particular targeted for making it easy to integrate SVG into Java +games and making it much easier for artists to design 2D game content - from +rich interactive menus to charts and graphcs to complex animations.") + (license license:bsd-2))) + +(define-public java-jboss-transaction-api-spec + (package + (name "java-jboss-transaction-api-spec") + (version "1.2+1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jboss/jboss-transaction-api_spec") + (commit "jboss-transaction-api_1.2_spec-1.1.1.Final"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xbfq5hvb86izflydxrqqv3k26c1ba2m0ap6m97shqrsdi9by4wy")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "java-jboss-transaction-api_spec.jar" + #:source-dir "src/main/java" + #:tests? #f)); no tests + (inputs + `(("java-cdi-api" ,java-cdi-api) + ("java-jboss-interceptors-api-spec" ,java-jboss-interceptors-api-spec))) + (home-page "https://github.com/jboss/jboss-transaction-api_spec") + (synopsis "Generic transaction management API in Java") + (description "Java-jboss-transaction-api-spec implements the Transactions +API. A transaction is a unit of work containing one or more operations +involving one or more shared resources having ACID (Atomicity, Consistency, +Isolation and Durability) properties.") + ;; either gpl2 only with classpath exception or cddl. + (license (list license:gpl2 license:cddl1.0)))) |