From a1a5ef2094a99bf97dd3e260c6b74bee4d4c861e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 May 2018 21:36:45 +0200 Subject: gnu: Add java-jsr250. * gnu/packages/java.scm (java-jsr250): New variable. --- gnu/packages/java.scm | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 90fd07c597..d109c3fd62 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016, 2017 Roel Janssen ;;; Copyright © 2017 Carlo Zancanaro -;;; Copyright © 2017 Julien Lepiller +;;; Copyright © 2017, 2018 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2016, 2017, 2018 Alex Vong ;;; Copyright © 2017 Tobias Geerinckx-Rice @@ -4263,6 +4263,33 @@ from within Java, as well as an object registry that exposes Java objects to these scripting language engines.") (license license:asl2.0))) +(define-public java-jsr250 + (package + (name "java-jsr250") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "javax/annotation/javax.annotation-api/" + version "/javax.annotation-api-" + version "-sources.jar")) + (sha256 + (base32 + "08clh8n4n9wfglf75qsqfjs6yf79f7x6hqx38cn856pksszv50kz")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jdk ,icedtea-8 + #:jar-name "jsr250.jar")) + (home-page "https://jcp.org/en/jsr/detail?id=250") + (synopsis "Security-related annotations") + (description "This package provides annotations for security. It provides +packages in the @code{javax.annotation} and @code{javax.annotation.security} +namespaces.") + ;; either cddl or gpl2 only, with classpath exception + (license (list license:cddl1.0 + license:gpl2)))) + (define-public java-jsr305 (package (name "java-jsr305") -- cgit v1.2.3 From 1a1810f534b8a296a90ab3da2b27cbe238fd28e8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 May 2018 21:43:18 +0200 Subject: gnu: Add java-eclipse-sisu-inject. * gnu/packages/java.scm (java-eclipse-sisu-inject): New variable. --- gnu/packages/java.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d109c3fd62..66d6981fc3 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9833,3 +9833,43 @@ and reporting) project dependencies. It is characterized by the following: reporting and publication. @end itemize") (license license:asl2.0))) + +(define-public java-eclipse-sisu-inject + (package + (name "java-eclipse-sisu-inject") + (version "0.3.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/sisu.inject/" + "archive/releases/" version ".tar.gz")) + (sha256 + (base32 + "11rg6yw5nl13i65xsp4jxxgr341qcnnaan48p767h28kb07s0ajn")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-sisu-inject.jar" + #:source-dir "org.eclipse.sisu.inject/src" + #:jdk ,icedtea-8 + #:tests? #f)); no tests + (inputs + `(("java-guice" ,java-guice) + ("java-guice-servlet" ,java-guice-servlet) + ("java-javax-inject" ,java-javax-inject) + ("java-tomcat" ,java-tomcat) + ("java-junit" ,java-junit) + ("java-slf4j-api" ,java-slf4j-api) + ("java-jsr305" ,java-jsr305) + ("java-jsr250" ,java-jsr250) + ("java-cdi-api" ,java-cdi-api) + ("java-osgi-framework" ,java-osgi-framework) + ("java-osgi-util-tracker" ,java-osgi-util-tracker) + ("java-testng" ,java-testng))) + (home-page "https://www.eclipse.org/sisu/") + (synopsis "Classpath scanning, auto-binding, and dynamic auto-wiring") + (description "Sisu is a modular JSR330-based container that supports +classpath scanning, auto-binding, and dynamic auto-wiring. Sisu uses +Google-Guice to perform dependency injection and provide the core JSR330 +support, but removes the need to write explicit bindings in Guice modules. +Integration with other containers via the Eclipse Extension Registry and the +OSGi Service Registry is a goal of this project.") + (license license:epl1.0))) -- cgit v1.2.3 From 7049dea1854f5f09ae744578e5666af80246804e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 May 2018 21:46:21 +0200 Subject: gnu: Add java-eclipse-sisu-plexus. * gnu/packages/java.scm (java-eclipse-sisu-plexus): New variable. --- gnu/packages/java.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 66d6981fc3..4aef4befa5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9873,3 +9873,85 @@ support, but removes the need to write explicit bindings in Guice modules. Integration with other containers via the Eclipse Extension Registry and the OSGi Service Registry is a goal of this project.") (license license:epl1.0))) + +(define-public java-eclipse-sisu-plexus + (package + (name "java-eclipse-sisu-plexus") + (version "0.3.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eclipse/sisu.plexus/" + "archive/releases/" version ".tar.gz")) + (sha256 + (base32 + "0lbj7nxy5j0z71k407zbb82icfqh7midrfk0fb3fa3jzdjz0d9d9")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." ".*.jar")) + (rename-file "org.eclipse.sisu.plexus.tests/src" + "org.eclipse.sisu.plexus.tests/java") + #t)))) + (build-system ant-build-system) + (arguments + `(#:jar-name "eclipse-sisu-plexus.jar" + #:source-dir "org.eclipse.sisu.plexus/src" + #:test-dir "org.eclipse.sisu.plexus.tests" + #:test-exclude + (list + ;; This test fails probably because we can't generate the necessary + ;; meta-inf files. + "**/PlexusLoggingTest.*" + ;; FIXME: This test fails because of some injection error + "**/PlexusRequirementTest.*") + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (install-file "org.eclipse.sisu.plexus/META-INF/plexus/components.xml" + "build/classes/META-INF/plexus") + #t)) + (add-before 'check 'build-test-jar + (lambda _ + (with-directory-excursion "org.eclipse.sisu.plexus.tests/resources/component-jar/src/main/" + (mkdir "build") + (with-directory-excursion "java" + (apply invoke "javac" "-cp" + (string-append (getenv "CLASSPATH") + ":../../../../../build/classes") + (find-files "." ".*.java")) + (for-each (lambda (file) (install-file file (string-append "../build/" file))) + (find-files "." ".*.jar"))) + (mkdir-p "build/META-INF/plexus") + (copy-file "resources/META-INF/plexus/components.xml" + "build/META-INF/plexus/components.xml") + (with-directory-excursion "build" + (invoke "jar" "cf" "../../../component-jar-0.1.jar" "."))) + (with-directory-excursion "org.eclipse.sisu.plexus.tests/" + (copy-recursively "META-INF" "../build/test-classes/META-INF") + (substitute* "java/org/eclipse/sisu/plexus/DefaultPlexusContainerTest.java" + (("resources/component-jar") + "org.eclipse.sisu.plexus.tests/resources/component-jar"))) + #t))))) + (inputs + `(("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-plexus-util" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-osgi-framework" ,java-osgi-framework) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-guice" ,java-guice) + ("java-javax-inject" ,java-javax-inject) + ("java-slf4j-api" ,java-slf4j-api) + ("java-junit" ,java-junit))) + (native-inputs + `(("java-guava" ,java-guava) + ("java-aopalliance" ,java-aopalliance) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm))) + (home-page "https://www.eclipse.org/sisu/") + (synopsis "Plexus support for the sisu container") + (description "Sisu is a modular JSR330-based container that supports +classpath scanning, auto-binding, and dynamic auto-wiring. This package +adds Plexus support to the Sisu-Inject container.") + (license license:epl1.0))) -- cgit v1.2.3 From 66006fe5264769ee6705271b41ae29cfd534c9a7 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 May 2018 23:25:07 +0200 Subject: gnu: Add java-commons-jxpath. * gnu/packages/java.scm (java-commons-jxpath): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4aef4befa5..e205cccd69 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -4263,6 +4263,37 @@ from within Java, as well as an object registry that exposes Java objects to these scripting language engines.") (license license:asl2.0))) +(define-public java-commons-jxpath + (package + (name "java-commons-jxpath") + (version "1.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/jxpath/source/" + "commons-jxpath-" version "-src.tar.gz")) + (sha256 + (base32 + "1rpgg31ayn9fwr4bfi2i1ij0npcg79ad2fv0w9hacvawsyc42cfs")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-jxpath.jar" + ;; tests require more dependencies, including mockrunner which depends on old software + #:tests? #f + #:source-dir "src/java")) + (inputs + `(("java-tomcat" ,java-tomcat) + ("java-jdom" ,java-jdom) + ("java-commons-beanutils" ,java-commons-beanutils))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://commons.apache.org/jxpath/") + (synopsis "Simple interpreter of an expression language called XPath.") + (description "The org.apache.commons.jxpath package defines a simple +interpreter of an expression language called XPath. JXPath applies XPath +expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet +contexts, DOM etc, including mixtures thereof.") + (license license:asl2.0))) + (define-public java-jsr250 (package (name "java-jsr250") -- cgit v1.2.3 From 3fa18fe796e02f65ef55ea070cbec35593e19625 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 May 2018 23:35:18 +0200 Subject: gnu: Add java-commons-compiler. * gnu/packages/java.scm (java-commons-compiler): New variable. --- gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e205cccd69..cfd8f81592 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9986,3 +9986,34 @@ OSGi Service Registry is a goal of this project.") classpath scanning, auto-binding, and dynamic auto-wiring. This package adds Plexus support to the Sisu-Inject container.") (license license:epl1.0))) + +(define-public java-commons-compiler + (package + (name "java-commons-compiler") + (version "3.0.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janino-compiler/janino") + (commit "91aa95686d1e4ca3b16a984a03a38686572331b2"))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "04hfdl59sgh20qkxzgnibvs8f9hy6n7znxwpk611y5d89977y62r")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + (find-files "." "\\.jar$")) + #t)))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-compiler.jar" + #:source-dir "commons-compiler/src/main" + #:tests? #f)); no tests + (home-page "https://github.com/janino-compiler/janino") + (synopsis "Java compiler") + (description "Commons-compiler contains an API for janino, including the +@code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator} +and @code{ISimpleCompiler} interfaces.") + (license license:bsd-3))) -- cgit v1.2.3 From 3402e651c87190299b0d1cab18ace4ea29e65b1f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 26 May 2018 00:00:37 +0200 Subject: gnu: Add java-janino. * gnu/packages/java.scm (java-janino): New variable. --- gnu/packages/java.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index cfd8f81592..a810a53585 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10017,3 +10017,26 @@ adds Plexus support to the Sisu-Inject container.") @code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator} and @code{ISimpleCompiler} interfaces.") (license license:bsd-3))) + +(define-public java-janino + (package + (inherit java-commons-compiler) + (name "java-janino") + (arguments + `(#:jar-name "janino.jar" + #:source-dir "src/main/java" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "janino")))))) + (inputs + `(("java-commons-compiler" ,java-commons-compiler))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (description "Janino is a Java compiler. Janino can compile a set of +source files to a set of class files like @code{javac}, but also compile a +Java expression, block, class body or source file in memory, load the bytecode +and execute it directly in the same JVM. @code{janino} can also be used for +static code analysis or code manipulation."))) -- cgit v1.2.3 From 7d8207a4c177732f87817b4a9a8e04c352e61284 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 26 May 2018 11:58:21 +0200 Subject: gnu: Add java-logback-core. * gnu/packages/java.scm (java-logback-core): New variable. --- gnu/packages/java.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a810a53585..edfa7db8f9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10040,3 +10040,58 @@ source files to a set of class files like @code{javac}, but also compile a Java expression, block, class body or source file in memory, load the bytecode and execute it directly in the same JVM. @code{janino} can also be used for static code analysis or code manipulation."))) + +(define-public java-logback-core + (package + (name "java-logback-core") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/qos-ch/logback/archive/v_" + version ".tar.gz")) + (sha256 + (base32 + "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "logback-access/lib")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "logback.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:test-exclude + ;; These tests fail with Unable to set MockitoNamingPolicy on cglib generator + ;; which creates FastClasses + (list "**/AllCoreTest.*" + "**/AutoFlushingObjectWriterTest.*" + "**/PackageTest.*" + "**/ResilientOutputStreamTest.*" + ;; And we still don't want to run abstract classes + "**/Abstract*.*") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "logback-core") + #t))))) + (inputs + `(("java-javax-mail" ,java-javax-mail) + ("java-tomcat" ,java-tomcat) + ("java-commons-compiler" ,java-commons-compiler) + ("java-janino" ,java-janino))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-mockito-1" ,java-mockito-1) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-objenesis" ,java-objenesis) + ("java-joda-time" ,java-joda-time))) + (home-page "https://logback.qos.ch") + (synopsis "Logging for java") + (description "Logback is intended as a successor to the popular log4j project. +This module lays the groundwork for the other two modules.") + ;; Either epl1.0 or lgpl2.1 + (license (list license:epl1.0 + license:lgpl2.1)))) -- cgit v1.2.3 From 3a69f5f2d348be38026c56ce3e9f04302e6d198e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sat, 26 May 2018 13:32:34 +0200 Subject: gnu: Add java-logback-classic. * gnu/packages/java.scm (java-logback-classic): New variable. --- gnu/packages/java.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index edfa7db8f9..1efa657816 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -53,6 +53,7 @@ #:use-module (gnu packages gnuzilla) ;nss #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) + #:use-module (gnu packages groovy) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) @@ -10095,3 +10096,47 @@ This module lays the groundwork for the other two modules.") ;; Either epl1.0 or lgpl2.1 (license (list license:epl1.0 license:lgpl2.1)))) + +(define-public java-logback-classic + (package + (inherit java-logback-core) + (name "java-logback-classic") + (arguments + `(#:jar-name "logback-classic.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:tests? #f; tests require more packages: h2, greenmail, hsql, subethamail, slf4j, log4j, felix + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "logback-classic") + #t)) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "build/classes") + (setenv "CLASSPATH" + (string-join + (apply append (map (lambda (input) + (find-files (assoc-ref inputs input) + ".*.jar")) + '("java-logback-core" "java-slf4j-api" + "java-commons-compiler" "java-tomcat" + "groovy"))) + ":")) + (apply invoke "groovyc" "-d" "build/classes" "-j" + (find-files "src/main/" ".*\\.(groovy|java)$")) + (invoke "ant" "jar") + #t))))) + (inputs + `(("java-logback-core" ,java-logback-core) + ("java-slf4j-api" ,java-slf4j-api) + ,@(package-inputs java-logback-core))) + (native-inputs + `(("groovy" ,groovy))) + (description "Logback is intended as a successor to the popular log4j project. +This module can be assimilated to a significantly improved version of log4j. +Moreover, @code{logback-classic} natively implements the slf4j API so that you +can readily switch back and forth between logback and other logging frameworks +such as log4j or @code{java.util.logging} (JUL)."))) -- cgit v1.2.3