(address . guix-patches@gnu.org)
Hi Guix!
I figured there was a small issue with our maven package. It warns that
the current logger is not supported, and lists no supported logger.
This is because I forgot to copy resources in maven-embedder (first
patch). I also noticed I missed resources in maven-compat, so I fixed
that in the second patch.
Then, maven uses its own logger instead of a default one, even if it
does support slf4j-simple. The third patch adds maven-slf4j-wrapper. It
is essentially a fork of slf4j-simple, but the way it's written
requires me to copy most of slf4j-simple's sources. The last patch
switches the use of slf4j-simple to maven-slf4j-provider. I checked
that java-jmh still builds properly with this change, and no warnings
are shown about the logger anymore.
From 6af76778dd0fb3436e673ee00984fb87fb72cdde Mon Sep 17 00:00:00 2001
Message-Id: <6af76778dd0fb3436e673ee00984fb87fb72cdde.1644313064.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 8 Feb 2022 10:20:28 +0100
Subject: [PATCH 1/4] gnu: maven-embedder: Install resources.
* gnu/packages/maven.scm (maven-embedder)[arguments]: Add copy-resources
phase.
---
gnu/packages/maven.scm | 4 ++++
1 file changed, 4 insertions(+)
Toggle diff (17 lines)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index ba4f111930..b7ae2cc225 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -1791,6 +1791,10 @@ (define-public maven-embedder
(invoke "./sisu.sh" "maven-embedder/src/main/java"
"build/classes/META-INF/sisu/javax.inject.Named")
#t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/")
+ (copy-recursively "maven-embedder/src/main/resources" "build/classes")))
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
--
2.34.0
From 3b44f6052ce0d9aa65d2642f8561d585fbdb8dd3 Mon Sep 17 00:00:00 2001
Message-Id: <3b44f6052ce0d9aa65d2642f8561d585fbdb8dd3.1644313064.git.julien@lepiller.eu>
In-Reply-To: <6af76778dd0fb3436e673ee00984fb87fb72cdde.1644313064.git.julien@lepiller.eu>
References: <6af76778dd0fb3436e673ee00984fb87fb72cdde.1644313064.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 8 Feb 2022 10:24:41 +0100
Subject: [PATCH 2/4] gnu: maven-compat: Install resources.
* gnu/packages/maven.scm (maven-compat)[arguments]: Add copy-resources
phase.
---
gnu/packages/maven.scm | 4 ++++
1 file changed, 4 insertions(+)
Toggle diff (17 lines)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index b7ae2cc225..b95aec121b 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -2000,6 +2000,10 @@ (define-public maven-compat
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
#t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/")
+ (copy-recursively "src/main/resources" "build/classes")))
(add-after 'build 'generate-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
--
2.34.0
From 9eef3c21cc802abf76f4037000a378d8cb4f7812 Mon Sep 17 00:00:00 2001
Message-Id: <9eef3c21cc802abf76f4037000a378d8cb4f7812.1644313064.git.julien@lepiller.eu>
In-Reply-To: <6af76778dd0fb3436e673ee00984fb87fb72cdde.1644313064.git.julien@lepiller.eu>
References: <6af76778dd0fb3436e673ee00984fb87fb72cdde.1644313064.git.julien@lepiller.eu>
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 8 Feb 2022 10:26:22 +0100
Subject: [PATCH 3/4] gnu: Add maven-slf4j-provider.
* gnu/packages/maven.scm (maven-slf4-provider): New variable.
---
gnu/packages/maven.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
Toggle diff (47 lines)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index b95aec121b..cf07c08b8e 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -1772,6 +1772,40 @@ (define-public maven-core
("maven-core-boot" ,maven-core-bootstrap)
,@(package-native-inputs maven-core-bootstrap)))))
+(define-public maven-slf4j-provider
+ (package
+ (inherit maven-artifact)
+ (name "maven-slf4j-provider")
+ (arguments
+ `(#:jar-name "maven-slf4j-provider.jar"
+ #:source-dir "maven-slf4j-provider/src/main/java"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-slf4j
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "generated-sources")
+ (with-directory-excursion "generated-sources"
+ (invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source"))
+ (for-each delete-file (find-files "." "StaticLoggerBinder.java")))
+ (for-each
+ (lambda (simple)
+ (for-each
+ (lambda (java)
+ (copy-file java
+ (string-append
+ "maven-slf4j-provider/src/main/java/org/slf4j/impl/"
+ (basename java))))
+ (find-files (string-append simple "/src/main/java/") "\\.java$")))
+ (find-files "generated-sources" "slf4j-simple" #:directories? #t))))
+ (replace 'install
+ (install-from-pom "maven-slf4j-provider/pom.xml")))))
+ (inputs
+ `(("java-slf4j-api" ,java-slf4j-api)
+ ("java-slf4j-simple-source" ,(package-source java-slf4j-simple))
+ ("maven-shared-utils" ,maven-shared-utils)))
+ (native-inputs (list unzip))))
+
(define-public maven-embedder
(package
(inherit maven-artifact)
--
2.34.0