try to build maven-compat, fixes some issues, still not working

Julien LepillerSun Sep 24 23:09:45+0200 2017

a69c315

try to build maven-compat, fixes some issues, still not working

maven-generate-javax-inject-named.patch unknown status 1

1+
From 1d20c0e403f1a38d4aca830e0eb4db03ba43efd3 Mon Sep 17 00:00:00 2001
2+
From: Julien Lepiller <julien@lepiller.eu>
3+
Date: Tue, 19 Sep 2017 22:21:29 +0200
4+
Subject: [PATCH] Add sisu-maven-plugin replacement
5+
6+
---
7+
 sisu.sh | 12 ++++++++++++
8+
 1 file changed, 12 insertions(+)
9+
 create mode 100755 sisu.sh
10+
11+
diff --git a/sisu.sh b/sisu.sh
12+
new file mode 100755
13+
index 0000000..979f373
14+
--- /dev/null
15+
+++ b/sisu.sh
16+
@@ -0,0 +1,12 @@
17+
+## This script generates a rough javax.inject.Named file. It is meant to
18+
+## replace sisu-maven-plugin as it eventually has a recursive dependency
19+
+## on maven.
20+
+##
21+
+## This script must be run in the source directory (usually src/main/java).
22+
+
23+
+for file in `(cd $1; find -name '*.java')`; do
24+
+  annot=`grep "@Named" $1/$file`
25+
+  if [ "$annot" != "" ]; then
26+
+    echo $file | sed -e 's|^\./||' -e 's|\.java||' -e 's|/|.|g'
27+
+  fi
28+
+done > $2
29+
-- 
30+
2.14.1
31+

more/packages/java.scm

252252
(define-public java-josm
253253
  (package
254254
    (name "java-josm")
255-
    (version "12545")
255+
    (version "12712")
256256
    (source (origin
257257
              (method git-fetch)
258258
              (uri (git-reference
259259
                    (url "https://github.com/openstreetmap/josm.git")
260-
                    (commit "3534f00bd3a58fe82f6b2e2685f5b9d17cc13886")))
260+
                    (commit "13645f32a20ff596f7a359be2ecf15680437cd22")))
261261
              ;;(uri (svn-reference
262262
              ;;      (url "https://svn.openstreetmap.org/applications/editors/josm")
263263
              ;;      (revision 12039)))
264264
              (sha256
265265
               (base32
266-
                "10j1p9xsi6g11qspcfj280n8bsm77skw9v50cyhj378v6bcxjh41"))
266+
                "02bbv7ac47vj7p63ffxa3pqx8pagkvfhnq0819s07mhhqav1kvy0"))
267267
              (file-name (string-append name "-" version))))
268268
    (build-system ant-build-system)
269269
    (native-inputs

48614861
                           "Xerces-J-src." version ".tar.gz"))
48624862
       (sha256
48634863
        (base32 "1006igwy2lqrmjvdk64v8dg6qbk9c29pm8xxx7r87n0vnpvmx6pm"))
4864-
       (patches (search-patches 
4864+
       (patches (search-patches
48654865
                 "java-xerces-xjavac_taskdef.patch"
48664866
                 "java-xerces-build_dont_unzip.patch"
48674867
                 "java-xerces-bootclasspath.patch"

55665566
                   ;; actually CDDL 1.1
55675567
                   license:cddl1.0))))
55685568
5569-
;; Can only be built with gradle.
55705569
(define-public groovy
55715570
  (package
55725571
    (name "groovy")

55865585
    (arguments
55875586
     `(#:jar-name "groovy.jar"
55885587
       #:source-dir "src/main:subprojects/groovy-test/src/main/java"
5588+
       #:test-dir "src/test"
55895589
       #:tests? #f
5590+
       #:main-class "groovy.ui.GroovyMain"
55905591
       #:phases
55915592
       (modify-phases %standard-phases
55925593
         (add-before 'build 'generate-parser

56045605
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
56055606
                                                         ":config/ant/src")
56065607
                             "org.codehaus.groovy.ExceptionUtilsGenerator"
5607-
                             "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class")))))))
5608+
                             "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class"))))
5609+
         ;(add-before 'check 'compile-groovy
5610+
         ;  (lambda _
5611+
         ;    (zero? (apply system* "java" "-cp"
5612+
         ;                  (string-append (getenv "CLASSPATH") ":build/classes")
5613+
         ;                  "org.codehaus.groovy.tools.FileSystemCompiler"
5614+
         ;                  (find-files "src/test" ".*\\.(groovy|java)$")))))
5615+
         (add-before 'check 'add-groovy-classes
5616+
           (lambda _
5617+
             (substitute* "build.xml"
5618+
               (("a") "a")))))))
56085619
    (native-inputs
56095620
     `(("junit" ,java-junit)
5610-
       ("antlr" ,antlr2)))
5621+
       ("antlr" ,antlr2)
5622+
       ("jmock" ,java-jmock-1)
5623+
       ("xmlunit" ,java-xmlunit-legacy)))
56115624
    (inputs
56125625
     `(("commons-cli" ,java-commons-cli)
56135626
       ("asm" ,java-asm)

66526665
       ("classworlds" ,java-plexus-classworlds)
66536666
       ("plugin-api" ,maven-plugin-api)
66546667
       ("plugin-annotations" ,maven-plugin-annotations)
6655-
       ("core" ,maven-core)
6668+
       ("core" ,maven-core-boot)
66566669
       ("model" ,maven-model)
66576670
       ("cli" ,java-commons-cli)
66586671
       ("qdox" ,java-qdox)

75647577
     `(#:jar-name "eclipse-aether-impl.jar"
75657578
       #:jdk ,icedtea-8
75667579
       #:source-dir "aether-impl/src/main/java"
7567-
       #:test-dir "aether-impl/src/test"))
7580+
       #:test-dir "aether-impl/src/test"
7581+
       #:phases
7582+
       (modify-phases %standard-phases
7583+
         (add-before 'build 'generate-sisu
7584+
           (lambda _
7585+
             (mkdir-p "build/classes/META-INF/sisu")
7586+
             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
7587+
               (lambda _
7588+
                 (display
7589+
                   (string-append
7590+
                     "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
7591+
                     "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
7592+
                     "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
7593+
                     "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
7594+
                     "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
7595+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
7596+
                     "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
7597+
                     "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
7598+
                     "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
7599+
                     "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
7600+
                     "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
7601+
                     "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
7602+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
7603+
                     "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
7604+
                     "org.eclipse.aether.internal.impl.DefaultInstaller\n"
7605+
                     "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
7606+
                     "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
7607+
                     "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
7608+
                     "org.eclipse.aether.internal.impl.DefaultDeployer\n"
7609+
                     "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n"
7610+
                     "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
7611+
                     "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n"
7612+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider")))))))))
75687613
    (inputs
75697614
     `(("api" ,java-eclipse-aether-api)
75707615
       ("spi" ,java-eclipse-aether-spi)

76687713
    (description "")
76697714
    (license (list license:epl1.0 license:lgpl2.1))))
76707715
7716+
(define java-logback-core-tests
7717+
  (package
7718+
    (inherit java-logback-core)
7719+
    (name "java-logback-core-tests")
7720+
    (arguments
7721+
     `(#:jar-name "logback-tests.jar"
7722+
       #:source-dir "logback-core/src/test/java"
7723+
       #:tests? #f))
7724+
    (inputs
7725+
     `(("core" ,java-logback-core)
7726+
       ,@(package-native-inputs java-logback-core)
7727+
       ,@(package-inputs java-logback-core)))))
7728+
76717729
(define-public java-logback-classic
76727730
  (package
76737731
    (inherit java-logback-core)

76767734
     `(#:jar-name "logback-classic.jar"
76777735
       #:source-dir "src/main/java"
76787736
       #:test-dir "src/test"
7737+
       #:tests? #f; tests require more packages: h2, greenmail, hsql, subethamail, slf4j, log4j, felix
7738+
       #:jdk ,icedtea-8
76797739
       #:phases
76807740
       (modify-phases %standard-phases
76817741
         (add-before 'configure 'chdir
76827742
           (lambda _
76837743
             (chdir "logback-classic")))
7684-
         (add-after 'chdir 'remove-groovy-dep
7744+
         ;(add-after 'configure 'build-groovy
7745+
         (replace 'build
76857746
           (lambda _
7686-
             (delete-file "src/main/java/ch/qos/logback/classic/boolex/GEventEvaluator.java"))))))
7747+
             ;(delete-file "src/main/java/ch/qos/logback/classic/boolex/GEventEvaluator.java"))))))
7748+
             (mkdir-p "build/classes")
7749+
             (and
7750+
               (zero? (apply system* "java" "-cp" (getenv "CLASSPATH")
7751+
                             "org.codehaus.groovy.tools.FileSystemCompiler"
7752+
                             "-d" "build/classes"
7753+
                             "-j"; joint compilation
7754+
                             (find-files "src/main/" ".*\\.(groovy|java)$")))
7755+
               (zero? (system* "ant" "jar"))))))))
76877756
    (inputs
76887757
     `(("core" ,java-logback-core)
76897758
       ("slf4j" ,java-slf4j-api)
7690-
       ,@(package-inputs java-logback-core)))))
7759+
       ,@(package-inputs java-logback-core)))
7760+
    (native-inputs
7761+
     `(("groovy" ,groovy)
7762+
       ;; for groovy
7763+
       ("cli" ,java-commons-cli)
7764+
       ("asm" ,java-asm)
7765+
       ("antlr" ,antlr2)
7766+
       ;; for tests
7767+
       ("junit" ,java-junit)
7768+
       ("hamcrest" ,java-hamcrest-core)
7769+
       ("dom4j" ,java-dom4j)
7770+
       ("log4j" ,java-log4j-api)
7771+
       ("osgi-framework" ,java-osgi-framework)
7772+
       ("assertj" ,java-assertj)
7773+
       ("mockito" ,java-mockito-1)
7774+
       ("slf4j" ,java-slf4j-api)
7775+
       ("core" ,java-logback-core)
7776+
       ("logback-tests" ,java-logback-core-tests)))))
7777+
7778+
(define java-slf4j-api-tests
7779+
  (package
7780+
    (inherit java-slf4j-api)
7781+
    (name "java-slf4j-api-tests")
7782+
    (arguments
7783+
     `(#:jar-name "slf4j-api-tests.jar"
7784+
       #:source-dir "slf4j-api/src/test/java"
7785+
       #:tests? #f))
7786+
    (inputs
7787+
     `(("slf4j" ,java-slf4j-api)
7788+
       ,@(package-inputs java-slf4j-api)
7789+
       ,@(package-native-inputs java-slf4j-api)))))
7790+
7791+
(define-public java-slf4j-simple
7792+
  (package
7793+
    (inherit java-slf4j-api)
7794+
    (name "java-slf4j-simple")
7795+
    (arguments
7796+
     `(#:jar-name "slf4j-simple.jar"
7797+
       #:source-dir "slf4j-simple/src/main/java"
7798+
       #:test-dir "slf4j-simple/src/test"))
7799+
    (inputs
7800+
     `(("slf4j" ,java-slf4j-api)
7801+
       ,@(package-inputs java-slf4j-api)))
7802+
    (native-inputs
7803+
     `(("tests" ,java-slf4j-api-tests)
7804+
       ,@(package-native-inputs java-slf4j-api)))))
7805+
7806+
;; Needs maven-core
7807+
(define-public maven-plugin-testing-harness
7808+
  (package
7809+
    (name "maven-plugin-testing-harness")
7810+
    (version "3.3.0")
7811+
    (source (origin
7812+
              (method url-fetch)
7813+
              (uri (string-append "https://archive.apache.org/dist/maven/plugin-"
7814+
                                  "testing/maven-plugin-testing-" version
7815+
                                  "-source-release.zip"))
7816+
              (sha256
7817+
               (base32
7818+
                "15vgjar275nkz47c05mpqb4g2rha0abc752xhxcxc34z2z47z6p5"))))
7819+
    (build-system ant-build-system)
7820+
    (arguments
7821+
     `(#:jar-name "maven-plugin-testing-harness.jar"
7822+
       #:source-dir "maven-plugin-testing-harness/src/main/java"
7823+
       #:jdk ,icedtea-8))
7824+
    (inputs
7825+
     `(("artifact" ,maven-artifact)))
7826+
    (native-inputs
7827+
     `(("unzip" ,unzip)))
7828+
    (home-page "")
7829+
    (synopsis "")
7830+
    (description "")
7831+
    (license license:asl2.0)))
7832+
7833+
(define-public maven-shared-utils
7834+
  (package
7835+
    (name "maven-shared-utils")
7836+
    (version "3.2.0")
7837+
    (source (origin
7838+
              (method url-fetch)
7839+
              (uri (string-append "https://archive.apache.org/dist/maven/shared/"
7840+
                                  "maven-shared-utils-" version "-source-release.zip"))
7841+
              (sha256
7842+
               (base32
7843+
                "05gkhmdq4b0xgnpxq27c9kpmn2gicmcmyb4sririafk5py7y1yj6"))))
7844+
    (build-system ant-build-system)
7845+
    (arguments
7846+
     `(#:jar-name "maven-shared-utils.jar"
7847+
       #:source-dir "src/main/java"
7848+
       #:jdk ,icedtea-8
7849+
       #:phases
7850+
       (modify-phases %standard-phases
7851+
         (add-before 'check 'remove-cyclic-dep
7852+
           (lambda _
7853+
             (delete-file "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
7854+
             #t)))))
7855+
    (inputs
7856+
     `(("jansi" ,java-jansi)
7857+
       ("io" ,java-commons-io)
7858+
       ("jsr305" ,java-jsr305)
7859+
       ("container" ,java-plexus-container-default)))
7860+
    (native-inputs
7861+
     `(("unzip" ,unzip)
7862+
       ("junit" ,java-junit)
7863+
       ("hamcrest" ,java-hamcrest-core)
7864+
       ("lang3" ,java-commons-lang3)))
7865+
    (home-page "")
7866+
    (synopsis "")
7867+
    (description "")
7868+
    (license license:asl2.0)))
76917869
76927870
(define-public maven
76937871
  (package
76947872
    (name "maven")
7695-
    (version "3.3.9")
7696-
    (source (origin 
7873+
    (version "3.5.0")
7874+
    (source (origin
76977875
              (method url-fetch)
76987876
              (uri (string-append "https://archive.apache.org/dist/maven/"
76997877
                                  "maven-3/" version "/source/"
77007878
                                  "apache-maven-" version "-src.tar.gz"))
7701-
              (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i"))
7879+
              (sha256 (base32 "1xw0g85w1rnxrjia3d7knpnwh8jg5052qsnqjl6nyly2k8320qrg"))
77027880
              (patches
7703-
                (search-patches "maven-generate-component-xml.patch"))))
7881+
                (search-patches "maven-generate-component-xml.patch"
7882+
                                "maven-generate-javax-inject-named.patch"))))
77047883
    (build-system ant-build-system)
77057884
    (arguments
77067885
     `(#:phases

79958174
       ;; for tests
79968175
       ("junit" ,java-junit)))))
79978176
7998-
(define-public maven-aether-provider
8177+
(define-public maven-resolver-provider
79998178
  (package
80008179
    (inherit maven)
8001-
    (name "maven-aether-provider")
8002-
    (arguments
8003-
     `(#:jar-name "maven-aether-provider.jar"
8004-
       #:source-dir "maven-aether-provider/src/main/java"
8005-
       #:test-dir "maven-aether-provider/src/test"
8006-
       #:tests? #f; strange failure: cannot find ContainerConfiguration.setAutoWiring()
8007-
       ;; and PlexusConstants.SCANNING_INDEX
8008-
       ;; Supposedly, this is in maven-compat, which depends on maven-core.
8180+
    (name "maven-resolver-provider")
8181+
    (arguments
8182+
     `(#:jar-name "maven-resolver-provider.jar"
8183+
       #:source-dir "maven-resolver-provider/src/main/java"
8184+
       #:test-dir "maven-resolver-provider/src/test"
80098185
       #:jdk ,icedtea-8
8186+
       #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
80108187
       #:phases
80118188
       (modify-phases %standard-phases
8189+
         (add-before 'build 'generate-sisu-named
8190+
           (lambda _
8191+
             (mkdir-p "build/classes/META-INF/sisu")
8192+
             (chmod "sisu.sh" #o755)
8193+
             (zero? (system* "./sisu.sh" "maven-resolver-provider/src/main/java"
8194+
                             "build/classes/META-INF/sisu/javax.inject.Named"))))
80128195
         (add-before 'build 'generate-components.xml
80138196
           (lambda _
80148197
             (mkdir-p "build/classes/META-INF/plexus")
80158198
             (chmod "components.sh" #o755)
8016-
             (zero? (system* "./components.sh" "maven-aether-provider/src/main/java"
8199+
             (zero? (system* "./components.sh" "maven-resolver-provider/src/main/java"
80178200
                             "build/classes/META-INF/plexus/components.xml")))))))
80188201
    (inputs
8019-
     `(("spi" ,java-eclipse-aether-spi)
8020-
       ("api" ,java-eclipse-aether-api)
8021-
       ("impl" ,java-eclipse-aether-impl)
8022-
       ("util" ,java-eclipse-aether-util)
8202+
     `(("spi" ,maven-resolver-spi)
8203+
       ("api" ,maven-resolver-api)
8204+
       ("impl" ,maven-resolver-impl)
8205+
       ("util" ,maven-resolver-util)
80238206
       ("model" ,maven-model)
80248207
       ("model-builder" ,maven-model-builder)
80258208
       ("support" ,maven-builder-support)

80488231
       ("junit" ,java-junit)
80498232
       ("mockito" ,java-mockito-1)))))
80508233
8051-
(define-public maven-core
8234+
(define maven-core-boot
80528235
  (package
80538236
    (inherit maven)
8054-
    (name "maven-core")
8237+
    (name "maven-core-boot")
80558238
    (arguments
80568239
     `(#:jar-name "maven-core.jar"
80578240
       #:source-dir "maven-core/src/main/java"

80648247
       #:tests? #f
80658248
       #:phases
80668249
       (modify-phases %standard-phases
8250+
         (add-before 'build 'copy-resources
8251+
           (lambda _
8252+
             (mkdir-p "build/classes/")
8253+
             (copy-recursively "maven-core/src/main/resources" "build/classes")))
8254+
         (add-before 'build 'generate-sisu-named
8255+
           (lambda _
8256+
             (mkdir-p "build/classes/META-INF/sisu")
8257+
             (chmod "sisu.sh" #o755)
8258+
             (zero? (system* "./sisu.sh" "maven-core/src/main/java"
8259+
                             "build/classes/META-INF/sisu/javax.inject.Named"))))
80678260
         (add-before 'build 'generate-models
80688261
           (lambda* (#:key inputs #:allow-other-keys)
80698262
             (define (modello-single-mode file version mode)

80788271
                 (modello-single-mode file "1.1.0" "xpp3-writer"))))))))
80798272
    (inputs
80808273
     `(("artifact" ,maven-artifact)
8081-
       ("aether" ,maven-aether-provider)
8274+
       ("resolver" ,maven-resolver-provider)
80828275
       ("support" ,maven-builder-support)
80838276
       ("model" ,maven-model)
80848277
       ("model-builder" ,maven-model-builder)

80868279
       ("settings-builder" ,maven-settings-builder)
80878280
       ("plugin-api" ,maven-plugin-api)
80888281
       ("repository-metadat" ,maven-repository-metadata)
8282+
       ("shared-utils" ,maven-shared-utils)
80898283
       ("annotations" ,java-plexus-component-annotations)
80908284
       ("utils" ,java-plexus-utils)
80918285
       ("lang3" ,java-commons-lang3)

81148308
       ("mockito" ,java-mockito-1)
81158309
       ("jxpath" ,java-commons-jxpath)))))
81168310
8311+
(define-public maven-core
8312+
  (package
8313+
    (inherit maven-core-boot)
8314+
    (name "maven-core")
8315+
    (arguments
8316+
      (substitute-keyword-arguments (package-arguments maven-core-boot)
8317+
        ((#:phases phases)
8318+
         `(modify-phases ,phases
8319+
            (add-after 'build 'generate-metadata
8320+
              (lambda _
8321+
                (delete-file "build/classes/META-INF/plexus/components.xml")
8322+
                (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
8323+
                                "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
8324+
                                "--source" "maven-core/src/main/java"
8325+
                                "--output" "build/classes/META-INF/plexus/components.xml"
8326+
                                ;; I don't know what these two options do, but if
8327+
                                ;; not present, it ends with a NullPointerException.
8328+
                                "--classes" "build/classes"
8329+
                                "--descriptors" "build/classes/META-INF"))))
8330+
            (add-after 'generate-metadata 'fix-metadata
8331+
              (lambda _
8332+
                (substitute* "build/classes/META-INF/plexus/components.xml"
8333+
                  (("<field-name>") "<role-hint /><field-name>"))
8334+
                #t))
8335+
            (add-after 'fix-metadata 'rebuild
8336+
              (lambda _
8337+
                (zero? (system* "ant" "jar"))))))))
8338+
    (native-inputs
8339+
     `(("metadata" ,java-plexus-component-metadata)
8340+
       ("cli" ,java-commons-cli)
8341+
       ("plexus-cli" ,java-plexus-cli)
8342+
       ("jdom2" ,java-jdom2)
8343+
       ("qdox" ,java-qdox)
8344+
       ("core" ,maven-core-boot)
8345+
       ,@(package-native-inputs maven-core-boot)))))
8346+
81178347
(define-public maven-wagon-provider-api
81188348
  (package
81198349
    (name "maven-wagon-provider-api")
81208350
    (version "3.0.0")
8121-
    (source (origin 
8351+
    (source (origin
81228352
              (method url-fetch)
81238353
              (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
81248354
                                  "wagon-" version "-source-release.zip"))

81748404
           (lambda _
81758405
             (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
81768406
               (("target") "build"))))
8177-
         (add-before 'build 'generate-metadata
8407+
         (add-after 'generate-metadata 'rebuild
81788408
           (lambda _
8179-
             (zero? (system* "java" "-cp" (getenv "CLASSPATH")
8409+
             (zero? (system* "ant" "jar"))))
8410+
         (add-after 'build 'generate-metadata
8411+
           (lambda _
8412+
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
81808413
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
81818414
                             "--source" "wagon-providers/wagon-file/src/main/java"
81828415
                             "--output" "build/classes/META-INF/plexus/components.xml"

81918424
     `(("provider-test" ,maven-wagon-provider-test)
81928425
       ("metadata" ,java-plexus-component-metadata)
81938426
       ("annotations" ,java-plexus-component-annotations)
8194-
       ("container" ,java-plexus-container-default)
8427+
       ("container" ,java-eclipse-sisu-plexus)
8428+
       ("sisu-inject" ,java-eclipse-sisu-inject)
81958429
       ("classworlds" ,java-plexus-classworlds)
81968430
       ("guava" ,java-guava)
8431+
       ("guice" ,java-guice)
8432+
       ("inject" ,java-javax-inject)
8433+
       ("cglib" ,java-cglib)
81978434
       ("slf4j" ,java-slf4j-api)
81988435
       ("utils" ,java-plexus-utils)
81998436
       ("cli" ,java-plexus-cli)

82168453
     `(#:jar-name "maven-embedder.jar"
82178454
       #:source-dir "maven-embedder/src/main/java"
82188455
       #:test-dir "maven-embedder/src/test"
8456+
       #:test-exclude (list "**/MavenCliTest.java")
82198457
       #:jdk ,icedtea-8
82208458
       #:phases
82218459
       (modify-phases %standard-phases
8460+
         (add-before 'build 'generate-sisu-named
8461+
           (lambda _
8462+
             (mkdir-p "build/classes/META-INF/sisu")
8463+
             (chmod "sisu.sh" #o755)
8464+
             (zero? (system* "./sisu.sh" "maven-embedder/src/main/java"
8465+
                             "build/classes/META-INF/sisu/javax.inject.Named"))))
82228466
         (add-before 'build 'generate-models
82238467
           (lambda* (#:key inputs #:allow-other-keys)
82248468
             (define (modello-single-mode file version mode)

82308474
               (and
82318475
                 (modello-single-mode file "1.0.0" "java")
82328476
                 (modello-single-mode file "1.0.0" "xpp3-reader")
8233-
                 (modello-single-mode file "1.0.0" "xpp3-writer"))))))))
8477+
                 (modello-single-mode file "1.0.0" "xpp3-writer")))))
8478+
         (add-before 'check 'fix-test-paths
8479+
           (lambda _
8480+
             (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
8481+
               (("target/test-classes") "build/test-classes"))))
8482+
         (add-before 'check 'fix-compilation
8483+
           (lambda _
8484+
             ;; Tests are in the java/ subdir. Other subdirectories contain
8485+
             ;; additional test plugins, with duplicate classes, so we can't
8486+
             ;; compile them. Also, they are meant to be built with maven, to
8487+
             ;; test its build process.
8488+
             (substitute* "build.xml"
8489+
               (("srcdir=\"maven-embedder/src/test\"")
8490+
                "srcdir=\"maven-embedder/src/test/java\"")))))))
82348491
    (inputs
82358492
     `(("core" ,maven-core)
82368493
       ("artifact" ,maven-artifact)

82488505
       ("sec-dispatcher" ,java-plexus-sec-dispatcher)
82498506
       ("aether-util" ,java-eclipse-aether-util)
82508507
       ("aether-api" ,java-eclipse-aether-api)
8251-
       ("logback" ,java-logback-classic)
8508+
       ("logback" ,java-logback-core)
8509+
       ("logback-classic" ,java-logback-classic)
82528510
       ("cli" ,java-commons-cli)
82538511
       ("io" ,java-commons-io)
82548512
       ("lang3" ,java-commons-lang3)
82558513
       ("guava" ,java-guava)
82568514
       ("guice" ,java-guice)
82578515
       ("inject" ,java-javax-inject)
8258-
       ("slf4j" ,java-slf4j-api)))
8516+
       ("slf4j" ,java-slf4j-api)
8517+
       ("slf4j-simple" ,java-slf4j-simple)))
82598518
    (native-inputs
82608519
     `(("modello" ,java-modello-core)
82618520
       ("xbean" ,java-geronimo-xbean-reflect)

82668525
       ("asm" ,java-asm)
82678526
       ("java" ,java-modello-plugins-java)
82688527
       ("xml" ,java-modello-plugins-xml)
8269-
       ("xpp3" ,java-modello-plugins-xpp3)))))
8528+
       ("xpp3" ,java-modello-plugins-xpp3)
8529+
       ;; tests
8530+
       ("junit" ,java-junit)
8531+
       ("hamcrest" ,java-hamcrest-core)))))
8532+
8533+
(define-public maven-resolver-api
8534+
  (package
8535+
    (name "maven-resolver-api")
8536+
    (version "1.1.0")
8537+
    (source (origin
8538+
              (method url-fetch)
8539+
              (uri (string-append "https://github.com/apache/maven-resolver/"
8540+
                                  "archive/maven-resolver-" version ".tar.gz"))
8541+
              (sha256
8542+
               (base32
8543+
                "1kvb64f6anmn93vdyb4s90189jrrm31agrp2gf0n9njwjp5vcddz"))))
8544+
    (build-system ant-build-system)
8545+
    (arguments
8546+
     `(#:jar-name "maven-resolver-api.jar"
8547+
       #:source-dir "maven-resolver-api/src/main/java"
8548+
       #:test-dir "maven-resolver-api/src/test"))
8549+
    (native-inputs
8550+
     `(("junit" ,java-junit)
8551+
       ("hamcrest" ,java-hamcrest-core)))
8552+
    (home-page "https://github.com/apache/maven-resolver")
8553+
    (synopsis "")
8554+
    (description "")
8555+
    (license license:asl2.0)))
8556+
8557+
(define-public maven-resolver-spi
8558+
  (package
8559+
    (inherit maven-resolver-api)
8560+
    (name "maven-resolver-spi")
8561+
    (arguments
8562+
     `(#:jar-name "maven-resolver-spi.jar"
8563+
       #:source-dir "maven-resolver-spi/src/main/java"
8564+
       #:test-dir "maven-resolver-spi/src/test"
8565+
       #:jdk ,icedtea-8))
8566+
    (inputs
8567+
     `(("api" ,maven-resolver-api)))))
8568+
8569+
(define-public maven-resolver-test-util
8570+
  (package
8571+
    (inherit maven-resolver-api)
8572+
    (name "maven-resolver-test-util")
8573+
    (arguments
8574+
     `(#:jar-name "maven-resolver-test-util.jar"
8575+
       #:source-dir "maven-resolver-test-util/src/main/java"
8576+
       #:test-dir "maven-resolver-test-util/src/test"
8577+
       #:jdk ,icedtea-8))
8578+
    (inputs
8579+
     `(("api" ,maven-resolver-api)
8580+
       ("spi" ,maven-resolver-spi)))))
8581+
8582+
(define-public maven-resolver-util
8583+
  (package
8584+
    (inherit maven-resolver-api)
8585+
    (name "maven-resolver-util")
8586+
    (arguments
8587+
     `(#:jar-name "maven-resolver-util.jar"
8588+
       #:source-dir "maven-resolver-util/src/main/java"
8589+
       #:test-dir "maven-resolver-util/src/test"
8590+
       #:jdk ,icedtea-8))
8591+
    (inputs
8592+
     `(("api" ,maven-resolver-api)))
8593+
    (native-inputs
8594+
     `(("junit" ,java-junit)
8595+
       ("hamcrest" ,java-hamcrest-core)
8596+
       ("test-util" ,maven-resolver-test-util)))))
8597+
8598+
(define-public maven-resolver-impl
8599+
  (package
8600+
    (inherit maven-resolver-api)
8601+
    (name "maven-resolver-impl")
8602+
    (arguments
8603+
     `(#:jar-name "maven-resolver-impl.jar"
8604+
       #:source-dir "maven-resolver-impl/src/main/java"
8605+
       #:test-dir "maven-resolver-impl/src/test"
8606+
       #:jdk ,icedtea-8
8607+
       #:phases
8608+
       (modify-phases %standard-phases
8609+
         (add-before 'build 'generate-sisu
8610+
           (lambda _
8611+
             (mkdir-p "build/classes/META-INF/sisu")
8612+
             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
8613+
               (lambda _
8614+
                 (display
8615+
                   (string-append
8616+
                     "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
8617+
                     "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
8618+
                     "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
8619+
                     "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n"
8620+
                     "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
8621+
                     "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
8622+
                     "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
8623+
                     "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
8624+
                     "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
8625+
                     "org.eclipse.aether.internal.impl.DefaultDeployer\n"
8626+
                     "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
8627+
                     "org.eclipse.aether.internal.impl.DefaultInstaller\n"
8628+
                     "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
8629+
                     "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
8630+
                     "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
8631+
                     "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
8632+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
8633+
                     "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
8634+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
8635+
                     "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
8636+
                     "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
8637+
                     "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
8638+
                     "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n")))))))))
8639+
    (inputs
8640+
     `(("api" ,maven-resolver-api)
8641+
       ("spi" ,maven-resolver-spi)
8642+
       ("util" ,maven-resolver-util)
8643+
       ("sisu" ,java-eclipse-sisu-inject)
8644+
       ("inject" ,java-javax-inject)
8645+
       ("guice" ,java-guice)
8646+
       ("guava" ,java-guava)
8647+
       ("cglib" ,java-cglib)
8648+
       ("asm" ,java-asm)
8649+
       ("aopalliance" ,java-aopalliance)
8650+
       ("slf4j" ,java-slf4j-api)))
8651+
    (native-inputs
8652+
     `(("junit" ,java-junit)
8653+
       ("hamcrest" ,java-hamcrest-core)
8654+
       ("test-util" ,maven-resolver-test-util)))))
8655+
8656+
(define-public maven-resolver-connector-basic
8657+
  (package
8658+
    (inherit maven-resolver-api)
8659+
    (name "maven-resolver-connector-basic")
8660+
    (arguments
8661+
     `(#:jar-name "maven-resolver-connector-basic.jar"
8662+
       #:source-dir "maven-resolver-connector-basic/src/main/java"
8663+
       #:test-dir "maven-resolver-connector-basic/src/test"
8664+
       #:jdk ,icedtea-8))
8665+
    (inputs
8666+
     `(("api" ,maven-resolver-api)
8667+
       ("spi" ,maven-resolver-spi)
8668+
       ("util" ,maven-resolver-util)
8669+
       ("inject" ,java-javax-inject)))
8670+
    (native-inputs
8671+
     `(("junit" ,java-junit)
8672+
       ("hamcrest" ,java-hamcrest-core)
8673+
       ("test-util" ,maven-resolver-test-util)))))
8674+
8675+
(define-public maven-resolver-transport-wagon
8676+
  (package
8677+
    (inherit maven-resolver-api)
8678+
    (name "maven-resolver-transport-wagon")
8679+
    (arguments
8680+
     `(#:jar-name "maven-resolver-transport-wagon.jar"
8681+
       #:source-dir "maven-resolver-transport-wagon/src/main/java"
8682+
       #:test-dir "maven-resolver-transport-wagon/src/test"
8683+
       #:jdk ,icedtea-8))
8684+
    (inputs
8685+
     `(("api" ,maven-resolver-api)
8686+
       ("spi" ,maven-resolver-spi)
8687+
       ("util" ,maven-resolver-util)
8688+
       ("inject" ,java-javax-inject)
8689+
       ("wagon-ap" ,maven-wagon-provider-api)
8690+
       ("annotation" ,java-plexus-component-annotations)
8691+
       ("classworld" ,java-plexus-classworlds)
8692+
       ("plexus-util" ,java-plexus-utils)
8693+
       ("sisu" ,java-eclipse-sisu-inject)
8694+
       ("sisu" ,java-eclipse-sisu-plexus)))
8695+
    (native-inputs
8696+
     `(("junit" ,java-junit)
8697+
       ("hamcrest" ,java-hamcrest-core)
8698+
       ("test-util" ,maven-resolver-test-util)
8699+
       ("guava" ,java-guava)
8700+
       ("cglib" ,java-cglib)
8701+
       ("asm" ,java-asm)
8702+
       ("aopalliance" ,java-aopalliance)
8703+
       ("guice" ,java-guice)))))
82708704
82718705
(define-public maven-compat
82728706
  (package

82958729
               (and
82968730
                 (modello-single-mode file "1.0.0" "java")
82978731
                 (modello-single-mode file "1.0.0" "xpp3-reader")
8298-
                 (modello-single-mode file "1.0.0" "xpp3-writer"))))))))
8732+
                 (modello-single-mode file "1.0.0" "xpp3-writer")))))
8733+
         (add-after 'build 'generate-metadata
8734+
           (lambda _
8735+
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
8736+
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
8737+
                             "--source" "maven-compat/src/main/java"
8738+
                             "--output" "build/classes/META-INF/plexus/components.xml"
8739+
                             ;; I don't know what these two options do, but if
8740+
                             ;; not present, it ends with a NullPointerException.
8741+
                             "--classes" "build/classes"
8742+
                             "--descriptors" "build/classes/META-INF"))))
8743+
         (add-before 'check 'build-tests
8744+
          (lambda _
8745+
            (zero? (system* "ant" "compile-tests"))))
8746+
         (add-after 'build-tests 'generate-test-metadata
8747+
           (lambda _
8748+
             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
8749+
                                                         ":build/classes"
8750+
                                                         ":build/test-classes")
8751+
                             "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
8752+
                             "--source" "maven-compat/src/test/java"
8753+
                             "--output" "build/test-classes/META-INF/plexus/components.xml"
8754+
                             ;; I don't know what these two options do, but if
8755+
                             ;; not present, it ends with a NullPointerException.
8756+
                             "--classes" "build/test-classes"
8757+
                             "--descriptors" "build/test-classes/META-INF"))))
8758+
         (add-after 'generate-metadata 'rebuild
8759+
           (lambda _
8760+
             (zero? (system* "ant" "jar")))))))
82998761
    (inputs
83008762
     `(("artifact" ,maven-artifact)
83018763
       ("repo" ,maven-repository-metadata)

83078769
       ("core" ,maven-core)
83088770
       ("wagon" ,maven-wagon-provider-api)
83098771
       ("wagon-file" ,maven-wagon-file)
8310-
       ("interpolation" ,java-plexus-interpolation)
8311-
       ("util" ,java-eclipse-aether-util)
8312-
       ("api" ,java-eclipse-aether-api)))
8772+
       ("resolver-api" ,maven-resolver-api)
8773+
       ("resolver-util" ,maven-resolver-util)
8774+
       ("resolver-spi" ,maven-resolver-spi)
8775+
       ("interpolation" ,java-plexus-interpolation)))
83138776
    (native-inputs
8777+
;; maven-resolver-{api,util,impl,connector-basic,transport-wagon}
83148778
     `(("modello" ,java-modello-core)
83158779
       ("utils" ,java-plexus-utils)
83168780
       ("annot" ,java-plexus-component-annotations)

83198783
       ("build-api" ,java-sisu-build-api)
83208784
       ("container" ,java-eclipse-sisu-plexus)
83218785
       ("sisu-inject" ,java-eclipse-sisu-inject)
8322-
       ("aether-spi" ,java-eclipse-aether-spi)
83238786
       ("inject" ,java-javax-inject)
83248787
       ("guice" ,java-guice)
83258788
       ("guava" ,java-guava)

83288791
       ("java" ,java-modello-plugins-java)
83298792
       ("xml" ,java-modello-plugins-xml)
83308793
       ("xpp3" ,java-modello-plugins-xpp3)
8794+
       ;; metadata
8795+
       ("metadata" ,java-plexus-component-metadata)
8796+
       ("cli" ,java-commons-cli)
8797+
       ("plexus-cli" ,java-plexus-cli)
8798+
       ("jdom2" ,java-jdom2)
8799+
       ("plugin-api" ,maven-plugin-api)
8800+
       ("qdox" ,java-qdox)
83318801
       ;; tests
83328802
       ("junit" ,java-junit)
8333-
       ("impl" ,java-eclipse-aether-impl)
8803+
       ("impl" ,maven-resolver-impl)
83348804
       ("lang3" ,java-commons-lang3)
8335-
       ("aether-provider" ,maven-aether-provider)))))
8805+
       ("aop" ,java-aopalliance)
8806+
       ("resolver-provider" ,maven-resolver-provider)
8807+
       ("slf4j" ,java-slf4j-api)
8808+
       ("slf4j-simple" ,java-slf4j-simple)
8809+
       ,@(package-inputs java-slf4j-api)))))
83368810
83378811
(define-public maven-plugin-annotations
83388812
  (package
83398813
    (name "maven-plugin-annotations")
83408814
    (version "3.5")
8341-
    (source (origin 
8815+
    (source (origin
83428816
              (method url-fetch)
83438817
              (uri (string-append "https://archive.apache.org/dist/maven/"
83448818
                                  "plugin-tools/maven-plugin-tools-" version