guix-more/more/packages/java.scm

java.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017-2019 Julien Lepiller <julien@lepiller.eu>
3
;;;
4
;;; This file is part of GNU Guix.
5
;;;
6
;;; GNU Guix is free software; you can redistribute it and/or modify it
7
;;; under the terms of the GNU General Public License as published by
8
;;; the Free Software Foundation; either version 3 of the License, or (at
9
;;; your option) any later version.
10
;;;
11
;;; GNU Guix is distributed in the hope that it will be useful, but
12
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
;;; GNU General Public License for more details.
15
;;;
16
;;; You should have received a copy of the GNU General Public License
17
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
18
19
(define-module (more packages java)
20
  #:use-module ((guix licenses) #:prefix license:)
21
  #:use-module (gnu packages)
22
  #:use-module (guix packages)
23
  #:use-module (guix download)
24
  #:use-module (guix git-download)
25
  #:use-module (guix svn-download)
26
  #:use-module (guix cvs-download)
27
  #:use-module (guix hg-download)
28
  #:use-module (guix utils)
29
  #:use-module (guix gexp)
30
  #:use-module (guix build syscalls)
31
  #:use-module (guix build-system ant)
32
  #:use-module (guix build-system gnu)
33
  #:use-module (guix build-system trivial)
34
  #:use-module (gnu packages apr)
35
  #:use-module (gnu packages autotools)
36
  #:use-module (gnu packages base)
37
  #:use-module (gnu packages batik)
38
  #:use-module (gnu packages compression)
39
  #:use-module (gnu packages cups)
40
  #:use-module (gnu packages docbook)
41
  #:use-module (gnu packages elf)
42
  #:use-module (gnu packages fontutils)
43
  #:use-module (gnu packages gcc)
44
  #:use-module (gnu packages groovy)
45
  #:use-module (gnu packages icu4c)
46
  #:use-module (gnu packages java)
47
  #:use-module (gnu packages libffi)
48
  #:use-module (gnu packages linux)
49
  #:use-module (gnu packages maven)
50
  #:use-module (gnu packages perl)
51
  #:use-module (gnu packages protobuf)
52
  #:use-module (gnu packages tls)
53
  #:use-module (gnu packages version-control)
54
  #:use-module (gnu packages web)
55
  #:use-module (gnu packages xml)
56
  #:use-module (gnu packages xorg)
57
  #:use-module (more packages maven)
58
  #:use-module (more packages python)
59
  #:use-module (more packages tls)
60
  #:use-module (more packages web))
61
62
(define-public java-httpcomponents-httpasyncclient
63
  (package
64
    (name "java-httpcomponents-httpasyncclient")
65
    (version "4.1.4")
66
    (source (origin
67
              (method url-fetch)
68
              (uri (string-append "mirror://apache/httpcomponents/httpasyncclient/"
69
                                  "source/httpcomponents-asyncclient-"
70
                                  version "-src.tar.gz"))
71
              (sha256
72
               (base32
73
                "0xfc20zrwdym6g00sz5y38mdmcn4y2jikkmfgqyh9zm4nkyj7ci5"))))
74
    (build-system ant-build-system)
75
    (arguments
76
     `(#:jar-name "httpcomponents-httpasyncclient.jar"
77
       #:phases
78
       (modify-phases %standard-phases
79
         (add-after 'unpack 'chdir
80
           (lambda _ (chdir "httpasyncclient") #t)))))
81
    (inputs
82
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
83
       ("java-commons-codec" ,java-commons-codec)
84
       ("java-commons-io" ,java-commons-io)
85
       ("java-hamcrest-core" ,java-hamcrest-core)
86
       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
87
       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
88
       ("java-httpcomponents-httpcore-nio" ,java-httpcomponents-httpcore-nio)
89
       ("java-mockito" ,java-mockito-1)
90
       ("java-junit" ,java-junit)))
91
    (home-page "https://hc.apache.org/httpcomponents-asyncclient-ga/")
92
    (synopsis "HTTP client library for Java")
93
    (description "Although the @code{java.net} package provides basic
94
functionality for accessing resources via HTTP, it doesn't provide the full
95
flexibility or functionality needed by many applications.  @code{HttpAsyncClient}
96
seeks to fill this void by providing an efficient, up-to-date, and
97
feature-rich package implementing the client side of the most recent HTTP
98
standards and recommendations.")
99
    (license license:asl2.0)))
100
101
(define-public java-fastutil
102
  (package
103
    (name "java-fastutil")
104
    (version "8.2.2")
105
    (source (origin
106
              (method git-fetch)
107
              (uri (git-reference
108
                     (url "https://github.com/vigna/fastutil")
109
                     (commit version)))
110
              (file-name (git-file-name name version))
111
              (sha256
112
               (base32
113
                "1jn2c70lran9b2zkyvw4axynbsdb2qscz3drjd0jvs1fjmxiwzjh"))))
114
    (build-system ant-build-system)
115
    (arguments
116
     `(#:tests? #f; no tests
117
       #:phases
118
       (modify-phases %standard-phases
119
         (add-before 'build 'generate-sources
120
           (lambda _
121
             (invoke "make" "CC=gcc" "sources")
122
             #t))
123
         (add-after 'build 'generate-javadoc
124
           (lambda _
125
             (invoke "ant" "javadoc")
126
             #t))
127
         (replace 'install
128
           (install-jars ".")))))
129
    (home-page "http://fastutil.di.unimi.it/")
130
    (synopsis "")
131
    (description "")
132
    (license license:asl2.0)))
133
134
;; Maintained version of http-builder (groovyx.net.http)
135
(define-public java-http-builder-ng
136
  (package
137
    (name "java-http-builder-ng")
138
    (version "1.0.3")
139
    (source (origin
140
              (method url-fetch)
141
              (uri (string-append "https://github.com/http-builder-ng/"
142
                                  "http-builder-ng/archive/v" version ".tar.gz"))
143
              (file-name (string-append name "-" version ".tar.gz"))
144
              (sha256
145
               (base32
146
                "1acgdf5jnnsw32nbanwba5ax6m7y48c5zqdwrmpk3i2p9l5m30fd"))))
147
    (build-system ant-build-system)
148
    (arguments
149
     `(#:jar-name "http-builder-ng.jar"
150
       #:source-dir "http-builder-ng-core/src/main/java"
151
       #:test-dir "http-builder-ng-core/src/test"
152
       #:tests? #f)); TODO: com.stehno.ersatz
153
    (inputs
154
     `(("groovy" ,groovy)
155
       ("java-apache-xml-commons-resolver" ,java-apache-xml-commons-resolver)
156
       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
157
       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
158
       ("java-javax-mail" ,java-javax-mail)
159
       ("java-jsoup" ,java-jsoup)
160
       ("java-nekohtml" ,java-nekohtml)
161
       ("java-opencsv" ,java-opencsv)
162
       ("java-slf4j-api" ,java-slf4j-api)
163
       ("java-xerces" ,java-xerces)))
164
    (native-inputs
165
     `(("java-junit" ,java-junit)))
166
    (home-page "https://http-builder-ng.github.io/http-builder-ng")
167
    (synopsis "")
168
    (description "")
169
    (license license:asl2.0)))
170
171
(define-public java-commons-text
172
  (package
173
    (name "java-commons-text")
174
    ;; latest version is advertized to be 1.1.8
175
    (version "1.2")
176
    (source (origin
177
              (method url-fetch)
178
              (uri (string-append "mirror://apache/commons/text/source/"
179
                                  "commons-text-" version "-src.tar.gz"))
180
              (file-name (string-append name "-" version))
181
              (sha256
182
               (base32
183
                "0rzffm5al0nkxcbrbbjnnwvpky4y6mv8j1cfnhbkfvxq1zlr3aim"))))
184
    (build-system ant-build-system)
185
    (arguments
186
     `(#:jar-name "commons-text.jar"
187
       #:source-dir "src/main/java"))
188
    (inputs
189
     `(("java-commons-lang3" ,java-commons-lang3)))
190
    (native-inputs
191
     `(("java-assertj" ,java-assertj)
192
       ("java-hamcrest-all" ,java-hamcrest-all)
193
       ("java-junit" ,java-junit)))
194
    (home-page "https://commons.apache.org/proper/commons-text")
195
    (synopsis "")
196
    (description "")
197
    (license license:asl2.0)))
198
199
(define-public java-opencsv
200
  (package
201
    (name "java-opencsv")
202
    ;; latest version is advertized to be 1.1.8
203
    (version "4.1")
204
    (source (origin
205
              (method git-fetch)
206
              (uri (git-reference
207
                     (url "https://git.code.sf.net/p/opencsv/source")
208
                     (commit "Release_4_1")))
209
              ;(uri (string-append "https://sourceforge.net/code-snapshots/git/"
210
              ;                    "o/op/opencsv/source.git/opencsv-source-"
211
              ;                    "1a8d01d569f81390a88299a5344f2685dc690127.zip"))
212
              ;(file-name (string-append name "-" version ".zip"))
213
              (file-name (string-append name "-" version))
214
              (sha256
215
               (base32
216
                "1dmhssidx81n0mc6ifzw7j1q0q7882iz2cjmwk8p3gissndjf5li"))))
217
    (build-system ant-build-system)
218
    (arguments
219
     `(#:jar-name "opencsv.jar"
220
       #:source-dir "src/main/java"
221
       #:phases
222
       (modify-phases %standard-phases
223
         (add-before 'build 'copy-resources
224
           (lambda _
225
             (copy-recursively "src/main/resources" "build/classes")
226
             #t))
227
         (add-before 'build 'remove-failing-test
228
           (lambda _
229
             ;; This file fails to build
230
             (delete-file "src/test/java/com/opencsv/bean/StatefulBeanToCsvTest.java")
231
             #t)))))
232
    (inputs
233
     `(("java-commons-beanutils" ,java-commons-beanutils)
234
       ("java-commons-collections" ,java-commons-collections)
235
       ("java-commons-lang3" ,java-commons-lang3)
236
       ("java-commons-text" ,java-commons-text)))
237
    (native-inputs
238
     `(("java-asm" ,java-asm)
239
       ("java-cglib" ,java-cglib)
240
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
241
       ("java-junit" ,java-junit)
242
       ("java-mockito-1" ,java-mockito-1)
243
       ("java-objenesis" ,java-objenesis)))
244
    (home-page "https://github.com/sirthias/parboiled")
245
    (synopsis "")
246
    (description "")
247
    (license license:asl2.0)))
248
249
(define-public java-parboiled
250
  (package
251
    (name "java-parboiled")
252
    ;; latest version is advertized to be 1.1.8
253
    (version "1.1.7")
254
    (source (origin
255
              (method url-fetch)
256
              (uri (string-append "https://github.com/sirthias/parboiled/archive/"
257
                                  version ".tar.gz"))
258
              (file-name (string-append name "-" version ".tar.gz"))
259
              (sha256
260
               (base32
261
                "02akw95mqwnx5w1gag5ymilavgc0kr5dsiachpzbps282qmlssr2"))))
262
    (build-system ant-build-system)
263
    (arguments
264
     `(#:jar-name "parboiled.jar"
265
       #:source-dir "parboiled-core/src/main/java:parboiled-java/src/main/java"
266
       #:test-dir "parboiled-core/src/test"
267
       #:tests? #f)); requires scala
268
    (inputs
269
     `(("java-asm" ,java-asm)))
270
    (native-inputs
271
     `(("java-junit" ,java-junit)
272
       ("java-testng" ,java-testng)))
273
    (home-page "https://github.com/sirthias/parboiled")
274
    (synopsis "")
275
    (description "")
276
    (license license:asl2.0)))
277
278
(define-public java-pegdown
279
  (package
280
    (name "java-pegdown")
281
    (version "1.6.0")
282
    (source (origin
283
              (method url-fetch)
284
              (uri (string-append "https://github.com/sirthias/pegdown/archive/"
285
                                  version ".tar.gz"))
286
              (file-name (string-append name "-" version ".tar.gz"))
287
              (sha256
288
               (base32
289
                "18y97gvsvpqc9i7wvrq5zs2ir8ycd7f1igz6qgibrhw14i118xmx"))))
290
    (build-system ant-build-system)
291
    (arguments
292
     `(#:jar-name "pegdown.jar"
293
       #:source-dir "src/main/java"))
294
    (inputs
295
     `(("java-parboiled" ,java-parboiled)))
296
    (native-inputs
297
     `(("java-junit" ,java-junit)))
298
    (home-page "https://github.com/sirthias/pegdown")
299
    (synopsis "")
300
    (description "")
301
    (license license:asl2.0)))
302
303
(define-public java-nekohtml
304
  (package
305
    (name "java-nekohtml")
306
    (version "1.9.21")
307
    (source (origin
308
              (method url-fetch)
309
              (uri (string-append "http://downloads.sourceforge.net/nekohtml/"
310
                                  "nekohtml-" version ".tar.gz"))
311
              (sha256
312
               (base32
313
                "1dzdvm3wyl32ljbk3f5kvpg7h9fzps86q4hvfscr232d6xz6f18j"))
314
              (modules '((guix build utils)))
315
              (snippet
316
                `(for-each delete-file (find-files "." ".*.jar")))))
317
    (build-system ant-build-system)
318
    (arguments
319
     `(#:tests? #f; No tests
320
       #:phases
321
       (modify-phases %standard-phases
322
         (add-before 'build 'fix-classpath
323
           (lambda* (#:key inputs #:allow-other-keys)
324
             (substitute* "build.xml"
325
               (("\\$\\{lib.dir\\}/xerces-@\\{xercesVersion\\}")
326
                (string-append (assoc-ref inputs "java-xerces") "/share/java"))
327
               ;; We don't have older versions of xerces, so we don't need to
328
               ;; get the compatibility with those.
329
               (("<compileWith xercesVersion=\".*\" bridge=\"2_0\"/>")
330
                "")
331
               (("<compileWith xercesVersion=\".*\" bridge=\"2_1\"/>")
332
                "")
333
               (("<compileWith xercesVersion=\".*\" bridge=\"2_2\"/>")
334
                ""))
335
             #t))
336
         (replace 'install
337
           (install-jars ".")))))
338
    (inputs
339
     `(("java-xerces" ,java-xerces)))
340
    (home-page "")
341
    (synopsis "")
342
    (description "")
343
    (license license:asl2.0)))
344
345
(define-public java-jcifs
346
  (package
347
    (name "java-jcifs")
348
    (version "1.3.19")
349
    (source (origin
350
              (method url-fetch)
351
              (uri (string-append "https://jcifs.samba.org/src/jcifs-"
352
                                  version ".tgz"))
353
              (sha256
354
               (base32
355
                "19kzac3c19j0fyssibcj47868k8079wlj9azgsd7i6yqmdgqyk3y"))
356
              (modules '((guix build utils)))
357
              (snippet
358
                `(delete-file (string-append "jcifs-" ,version ".jar")))))
359
    (build-system ant-build-system)
360
    (arguments
361
     `(#:tests? #f; No tests
362
       #:phases
363
       (modify-phases %standard-phases
364
         (add-before 'build 'fix-compiler
365
           (lambda _
366
             ;; Expects to find the compiler in /usr/local
367
             (substitute* "build.xml"
368
               (("executable=.*") ""))
369
             #t))
370
         (replace 'install
371
           (install-jars ".")))))
372
    (inputs
373
     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)))
374
    (home-page "")
375
    (synopsis "")
376
    (description "")
377
    (license license:asl2.0)))
378
379
(define-public java-airline
380
  (package
381
    (name "java-airline")
382
    (version "0.8")
383
    (source (origin
384
              (method url-fetch)
385
              (uri (string-append "https://github.com/airlift/airline/archive/"
386
                                  version ".tar.gz"))
387
              (file-name (string-append name "-" version ".tar.gz"))
388
              (sha256
389
               (base32
390
                "047ckxslpaw6j54zyfdf4b7sw71vcx7rqbwqa3lzz3pprhdfnm4x"))))
391
    (build-system ant-build-system)
392
    (arguments
393
     `(#:jar-name "airline.jar"
394
       #:source-dir "src/main/java"
395
       #:test-dir "src/test"
396
       #:phases
397
       (modify-phases %standard-phases
398
         (replace 'check
399
           (lambda _
400
             (system* "ant" "compile-tests")
401
             ;; This fails though
402
             (system* "java" "-cp" (string-append (getenv "CLASSPATH")
403
                                                         ":build/classes"
404
                                                         ":build/test-classes")
405
                             "org.testng.TestNG" "-verbose" "5" "-testclass"
406
                             "build/test-classes/io/airlift/airline/command/CommandTest.class")
407
             #t)))))
408
    (inputs
409
     `(("java-guava-23.5" ,java-guava-23.5)
410
       ("java-javax-inject" ,java-javax-inject)
411
       ("java-jsr305" ,java-jsr305)))
412
    (native-inputs
413
     `(("java-testng" ,java-testng)
414
       ("java-hamcrest-core" ,java-hamcrest-core)))
415
    (home-page "")
416
    (synopsis "Command line parser")
417
    (description "Airline is a Java annotation-based framework for parsing Git
418
like command line structures.  Airline contains a fully automated help system,
419
which generates man-page-like documentation driven by the Java annotations.")
420
    (license license:asl2.0)))
421
422
(define-public java-japicmp
423
  (package
424
    (name "java-japicmp")
425
    (version "0.10.0")
426
    (source (origin
427
              (method url-fetch)
428
              (uri (string-append "https://github.com/siom79/japicmp/archive/"
429
                                  "japicmp-base-" version ".tar.gz"))
430
              (sha256
431
               (base32
432
                "0kb3ja3j6kliakbqp1ypva1y42qllwvyin38ky3kxqzlkzhzpy9j"))))
433
    (build-system ant-build-system)
434
    (arguments
435
     `(#:jar-name "japicmp.jar"
436
       #:source-dir "japicmp/src/main/java"
437
       #:test-dir "japicmp/src/test"
438
       #:tests? #f; require org.junit.contrib
439
       #:phases
440
       (modify-phases %standard-phases
441
         (add-before 'build 'copy-resources
442
           (lambda _
443
             (copy-recursively "japicmp/src/main/resources" "build/classes")
444
             #t)))))
445
    (inputs
446
     `(("java-airline" ,java-airline)
447
       ("java-jboss-javassist" ,java-jboss-javassist)
448
       ("java-guava" ,java-guava)
449
       ("java-javax-inject" ,java-javax-inject)))
450
    (home-page "")
451
    (synopsis "Japicmp is a tool to compare two versions of a jar archive")
452
    (description "Japicmp is a tool to compare two versions of a jar archive.
453
It can also be used as a library.")
454
    (license license:asl2.0)))
455
456
(define-public java-jatl
457
  (package
458
    (name "java-jatl")
459
    (version "0.2.3")
460
    (source (origin
461
              (method url-fetch)
462
              (uri (string-append "https://github.com/agentgt/jatl/archive/jatl-"
463
                                  version ".tar.gz"))
464
              (sha256
465
               (base32
466
                "0z3s4zpq97rwwn2gcfkhf28sib60d1sczg682fskyq1nfdxnlvgb"))))
467
    (build-system ant-build-system)
468
    (arguments
469
     `(#:jar-name "jatl.jar"
470
       #:source-dir "src/main/java"))
471
    (native-inputs
472
     `(("java-junit" ,java-junit)
473
       ("java-hamcrest-core" ,java-hamcrest-core)))
474
    (home-page "")
475
    (synopsis "")
476
    (description "")
477
    (license license:asl2.0)))
478
479
(define-public java-javaparser-3.9
480
  (package
481
    (name "java-javaparser")
482
    (version "3.9.0")
483
    (source (origin
484
              (method git-fetch)
485
              (uri (git-reference
486
                     (url "https://github.com/javaparser/javaparser.git")
487
                     (commit "b7907a0dc39ff10388943dfffba01bec4bb116dc")))
488
              (file-name (git-file-name name version))
489
              (sha256
490
               (base32
491
                "172y8wbwqwwvqlhk65df0zilyicq7nagnsa9f4gav8s85p9ijxr8"))
492
              (modules '((guix build utils)))
493
              (snippet
494
               '(begin
495
                  (for-each delete-file
496
                            (find-files "." "\\.jar$"))
497
                  #t))))
498
    (build-system ant-build-system)
499
    (arguments
500
     `(#:phases
501
       (modify-phases %standard-phases
502
         (add-before 'build 'fill-template
503
           (lambda _
504
             (with-directory-excursion "javaparser-core/src/main"
505
               (copy-file "java-templates/com/github/javaparser/JavaParserBuild.java"
506
                          "java/com/github/javaparser/JavaParserBuild.java")
507
               (substitute* "java/com/github/javaparser/JavaParserBuild.java"
508
                 (("\\$\\{project.version\\}") ,version)
509
                 (("\\$\\{project.name\\}") "javaparser")
510
                 (("\\$\\{project.build.finalName\\}") "javaparser")
511
                 (("\\$\\{maven.version\\}") "fake")
512
                 (("\\$\\{maven.build.version\\}") "fake")
513
                 (("\\$\\{build.timestamp\\}") "0")
514
                 (("\\$\\{java.vendor\\}") "Guix")
515
                 (("\\$\\{java.vendor.url\\}") "https://gnu.org/software/guix")
516
                 (("\\$\\{java.version\\}") "1.8")
517
                 (("\\$\\{os.arch\\}") "any")
518
                 (("\\$\\{os.name\\}") "GuixSD")
519
                 (("\\$\\{os.version\\}") "not available")))
520
             #t))
521
         (add-before 'build 'generate-javacc
522
           (lambda _
523
             (with-directory-excursion "javaparser-core/src/main/java"
524
               (invoke "java" "javacc" "../javacc/java.jj"))
525
             #t))
526
         (add-before 'build 'copy-javacc-support
527
           (lambda _
528
             (with-directory-excursion "javaparser-core/src/main"
529
               (copy-recursively "javacc-support" "java"))
530
             #t))
531
         (add-before 'build 'fix-ambiguousity
532
           (lambda _
533
             (substitute* (find-files "javaparser-symbol-solver-core/src/main/java" ".*.java")
534
               (("TypeParameter node")
535
                "com.github.javaparser.ast.type.TypeParameter node"))
536
             (substitute* (find-files "javaparser-core-metamodel-generator/src/main/java" ".*.java")
537
               (("\\(TypeParameter.class")
538
                "(com.github.javaparser.ast.type.TypeParameter.class"))
539
             (substitute* (find-files "javaparser-core/src/main/java" ".*.java")
540
               (("final TypeParameter ")
541
                "final com.github.javaparser.ast.type.TypeParameter ")
542
               (("\\(TypeParameter.class")
543
                "(com.github.javaparser.ast.type.TypeParameter.class")
544
               (("new TypeParameter\\(")
545
                "new com.github.javaparser.ast.type.TypeParameter(")
546
               (("\\(TypeParameter\\)")
547
                "(com.github.javaparser.ast.type.TypeParameter)")
548
               (("TypeParameter r")
549
                "com.github.javaparser.ast.type.TypeParameter r")
550
               (("TypeParameter tp")
551
                "com.github.javaparser.ast.type.TypeParameter tp")
552
               (("\\{TypeParameter")
553
                "{com.github.javaparser.ast.type.TypeParameter")
554
               (("public TypeParameter ")
555
                "public com.github.javaparser.ast.type.TypeParameter ")
556
               (("visit\\(TypeParameter ")
557
                "visit(com.github.javaparser.ast.type.TypeParameter ")
558
               (("<TypeParameter>")
559
                "<com.github.javaparser.ast.type.TypeParameter>"))
560
             #t))
561
         (replace 'build
562
           (lambda _
563
             (define (build name)
564
               (format #t "Building ~a~%" name)
565
               (delete-file-recursively "build/classes")
566
               (mkdir-p "build/classes")
567
               (apply invoke "javac"
568
                      "-cp" (string-append (getenv "CLASSPATH") ":"
569
                                           (string-join (find-files "build/jar" ".") ":"))
570
                      "-d" "build/classes"
571
                      (find-files (string-append name "/src/main/java")
572
                                  ".*.java"))
573
               (invoke "jar" "-cf" (string-append "build/jar/" name ".jar")
574
                       "-C" "build/classes" "."))
575
             (mkdir-p "build/classes")
576
             (mkdir-p "build/test-classes")
577
             (mkdir-p "build/jar")
578
             (build "javaparser-core")
579
             (build "javaparser-core-serialization")
580
             (build "javaparser-core-generators")
581
             (build "javaparser-core-metamodel-generator")
582
             (build "javaparser-symbol-solver-model")
583
             (build "javaparser-symbol-solver-logic")
584
             (build "javaparser-symbol-solver-core")
585
             #t))
586
         (replace 'check
587
           (lambda _
588
             (define (test name)
589
               (format #t "Testing ~a~%" name)
590
               (delete-file-recursively "build/test-classes")
591
               (mkdir-p "build/test-classes")
592
               (apply invoke "javac" "-d" "build/test-classes"
593
                      "-cp" (string-append (getenv "CLASSPATH") ":"
594
                                           (string-join (find-files "build/jar" ".") ":"))
595
                      (find-files (string-append name "/src/test/java")
596
                                  ".*.java"))
597
               (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":"
598
                                                   (string-join (find-files "build/jar" ".") ":")
599
                                                   ":build/test-classes")
600
                       "org.junit.runner.JUnitCore"
601
                       (map
602
                         (lambda (file)
603
                           (string-join
604
                             (string-split
605
                               (substring file 14 (- (string-length file) 5)) #\/)
606
                             "."))
607
                         (find-files (string-append name "/src/test/java")
608
                                     ".*Test.java"))))
609
             ;; We need junit5 that recursively depend on this package,
610
             ;; as well as jbehave.
611
             ;(test "javaparser-core-testing")
612
             ;(test "javaparser-symbol-solver-testing")
613
             #t))
614
         (replace 'install
615
           (install-jars "build/jar")))))
616
    (inputs
617
     `(("java-guava" ,java-guava)
618
       ("java-jboss-javassist" ,java-jboss-javassist)
619
       ("java-jsonp-api" ,java-jsonp-api)))
620
    (native-inputs
621
     `(("javacc" ,javacc)
622
       ("java-hamcrest-core" ,java-hamcrest-core)
623
       ("java-junit" ,java-junit)
624
       ("java-okhttp" ,java-okhttp)))
625
    (home-page "http://javaparser.org/")
626
    (synopsis "Parser for Java")
627
    (description
628
     "This project contains a set of libraries implementing a Java 1.0 - Java
629
11 Parser with advanced analysis functionalities.")
630
    (license license:lgpl2.0+)))
631
632
(define-public java-jul-to-slf4j
633
  (package
634
    (inherit java-slf4j-api)
635
    (name "java-jul-to-slf4j")
636
    (arguments
637
     `(#:jar-name "jul-to-slf4j.jar"
638
       #:source-dir "jul-to-slf4j/src/main/java"
639
       #:test-dir "jul-to-slf4j/src/test"
640
       #:tests? #f)); Depend on log4j-1.2 (not log4j-1.2-api)
641
    (inputs
642
     `(("java-slf4j-api" ,java-slf4j-api)))))
643
644
;; Actually we need to build the native library too.
645
(define-public java-native-platform
646
  (package
647
    (name "java-native-platform")
648
    (version "0.14")
649
    (source (origin
650
              (method url-fetch)
651
              (uri (string-append "https://github.com/adammurdoch/"
652
                                  "native-platform/archive/" version ".tar.gz"))
653
              (file-name (string-append name "-" version ".tar.gz"))
654
              (sha256
655
               (base32
656
                "1if8h1lz8rh6gv6rrych63j2a03cfcqshb5c2973xsfs7jfrvbrr"))))
657
    (build-system ant-build-system)
658
    (arguments
659
     `(#:jar-name "native-platform.jar"
660
       #:source-dir "src/main/java"
661
       #:tests? #f)); TODO: fix build.xml to run Groovy tests
662
    (home-page "https://github.com/EsotericSoftware/minlog")
663
    (synopsis "Java bindings for various native APIs")
664
    (description "Native-platform is a collection of cross-platform Java APIs
665
for various native APIs.  It currently supports OS X, Linux, Windows and
666
FreeBSD on Intel architectures")
667
    (license license:asl2.0)))
668
669
(define-public java-minlog
670
  (package
671
    (name "java-minlog")
672
    (version "1.3.0")
673
    (source (origin
674
              (method url-fetch)
675
              (uri (string-append "https://github.com/EsotericSoftware/minlog/"
676
                                  "archive/minlog-" version ".tar.gz"))
677
              (sha256
678
               (base32
679
                "1vciwr6zw6bky70fi13sa85jc27r5nk5bzii8kdkblfaakmy8ifb"))))
680
    (build-system ant-build-system)
681
    (arguments
682
     `(#:jar-name "minlog.jar"
683
       #:tests? #f)); No tests
684
    (home-page "https://github.com/EsotericSoftware/minlog")
685
    (synopsis "Logging library")
686
    (description "MinLog is a tiny Java logging library which features:
687
@itemize
688
@item Zero overhead: Logging statements below a given level can be
689
      automatically removed by javac at compile time.  This means applications
690
      can have detailed trace and debug logging without having any impact on
691
      the finished product.
692
@item Extremely lightweight: The entire project consists of a single Java file
693
      with ~100 non-comment lines of code.
694
@item Simple and efficient: The API is concise and the code is very efficient
695
      at runtime.
696
@end itemize")
697
    (license license:bsd-3)))
698
699
(define-public java-reflectasm
700
  (package
701
    (name "java-reflectasm")
702
    (version "1.11.5")
703
    (source (origin
704
              (method url-fetch)
705
              (uri (string-append "https://github.com/EsotericSoftware/"
706
                                  "reflectasm/archive/reflectasm-" version
707
                                  ".tar.gz"))
708
              (sha256
709
               (base32
710
                "1rcgr5rm2g0jl2z0qk1bddlq72mh16ywznyy8pra0ns8xk6hwa8g"))))
711
    (build-system ant-build-system)
712
    (arguments
713
     `(#:jar-name "reflectasm.jar"
714
       #:tests? #f; Tests are not in a java subdirectory
715
       #:phases
716
       (modify-phases %standard-phases
717
         (add-before 'build 'fix-asm
718
           (lambda _
719
             ;; asm has been renamed
720
             (substitute* '("src/com/esotericsoftware/reflectasm/ConstructorAccess.java"
721
                            "src/com/esotericsoftware/reflectasm/FieldAccess.java"
722
                            "src/com/esotericsoftware/reflectasm/MethodAccess.java")
723
               (("com.esotericsoftware.asm") "org.objectweb.asm"))
724
             #t)))))
725
    (inputs
726
     `(("java-asm" ,java-asm)))
727
    (home-page "https://github.com/EsotericSoftware/reflectasm")
728
    (synopsis "Reflection library for Java")
729
    (description "ReflectASM is a very small Java library that provides high
730
performance reflection by using code generation.  An access class is generated
731
to set/get fields, call methods, or create a new instance.  The access class
732
uses bytecode rather than Java's reflection, so it is much faster.  It can
733
also access primitive fields via bytecode to avoid boxing.")
734
    (license license:bsd-3)))
735
736
(define-public java-kryo
737
  (package
738
    (name "java-kryo")
739
    (version "4.0.1")
740
    (source (origin
741
              (method url-fetch)
742
              (uri (string-append "https://github.com/EsotericSoftware/kryo/"
743
                                  "archive/kryo-parent-" version ".tar.gz"))
744
              (sha256
745
               (base32
746
                "0l0mwxfym29ssvxxwawg8h6psnzbb1dbhqfzhhhxxbm7p79xzga5"))))
747
    (build-system ant-build-system)
748
    (arguments
749
     `(#:jar-name "kryo.jar"
750
       #:tests? #f)); No tests
751
    (inputs
752
     `(("java-minlog" ,java-minlog)
753
       ("java-objenesis" ,java-objenesis)
754
       ("java-reflectasm" ,java-reflectasm)))
755
    (home-page "https://github.com/EsotericSoftware/kryo")
756
    (synopsis "Object graph serialization framework")
757
    (description "Kryo is a fast and efficient object graph serialization
758
framework for Java.  The project is useful any time objects need to be
759
persisted, whether to a file, database, or over the network.")
760
    (license license:bsd-3)))
761
762
(define-public java-jformatstring
763
  (package
764
    (name "java-jformatstring")
765
    (version "3.0.0")
766
    (source (origin
767
              (method url-fetch)
768
              (uri (string-append "https://framagit.org/tyreunom/j-format-string/-/archive/"
769
                                  version "/j-format-string-" version ".tar.gz"))
770
              (sha256
771
               (base32
772
                "0ypqnchxif7rkq3n9vshj3j0d24kw3wr6k00yb5i14jm59m21r90"))
773
              (modules '((guix build utils)))
774
              (snippet
775
                '(begin
776
                   (for-each delete-file (find-files "." ".*.jar"))))))
777
    (build-system ant-build-system)
778
    (arguments
779
     `(#:jar-name "jformatstring.jar"
780
       ; tests are not in a java directory
781
       #:tests? #f))
782
    (inputs
783
     `(("java-jsr305" ,java-jsr305)
784
       ("java-junit" ,java-junit)
785
       ("java-spotbugs-annotations" ,java-spotbugs-annotations)))
786
    (home-page "http://findbugs.sourceforge.net/")
787
    (synopsis "")
788
    (description "")
789
    ;; license: gpl2 only, with classpath exception
790
    (license license:gpl2)))
791
792
(define-public java-commons-bcel-5
793
  (package
794
    (inherit java-commons-bcel)
795
    (version "5.2")
796
    (source (origin
797
              (method url-fetch)
798
              (uri (string-append "https://archive.apache.org/dist/commons/"
799
                                  "bcel/source/bcel-" version "-src.tar.gz"))
800
              (sha256
801
               (base32
802
                "15djmay72mzk38v183j6fr3j7fj3dhkp5z53bsvdfyc3ldcrs0v8"))))
803
    (arguments
804
     `(#:jar-name "commons-bcel.jar"
805
       #:source-dir "src/java"
806
       #:tests? #f
807
       #:phases
808
       (modify-phases %standard-phases
809
         (add-before 'build 'use-iso8859
810
           (lambda _
811
             (substitute* "build.xml"
812
               (("<javac ") "<javac encoding=\"iso-8859-1\" "))
813
             #t)))))))
814
815
(define-public java-findbugs
816
  (package
817
    (name "java-findbugs")
818
    (version "3.0.1")
819
    (source (origin
820
              (method url-fetch)
821
              (uri (string-append "http://prdownloads.sourceforge.net/findbugs/"
822
                                  "findbugs-" version "-source.zip"))
823
              (sha256
824
               (base32
825
                "1zrkpmd87lcz62lk5dr0mpf5gbzrd1i8mmrv510fs6fla1jwd3mx"))
826
              (modules '((guix build utils)))
827
              (snippet
828
                '(begin
829
                   (for-each delete-file (find-files "." ".*.jar"))))))
830
    (build-system ant-build-system)
831
    (arguments
832
     `(#:build-target "jars"
833
       #:test-target "test"
834
       #:make-flags (list "-Dgitrnum=0")
835
       #:jdk ,icedtea-7
836
       #:phases
837
       (modify-phases %standard-phases
838
         (add-before 'build 'add-formatstring
839
           (lambda* (#:key inputs #:allow-other-keys)
840
             (invoke "tar" "xf" (assoc-ref inputs "java-jformatstring"))
841
             (copy-recursively "j-format-string-3.0.0/src/java" "src/java")
842
             (copy-recursively "j-format-string-3.0.0/src/junit" "src/junit")
843
             #t))
844
         (add-before 'build 'fix-bcel-version
845
           (lambda _
846
             ;; Findbugs requires an older version of bcel. Fix it to support
847
             ;; newer bcel versions.
848
             (with-directory-excursion "src/java/edu/umd/cs/findbugs"
849
               (with-fluids ((%default-port-encoding "ISO-8859-1"))
850
                 (substitute* '("visitclass/PreorderVisitor.java"
851
                                "StackMapAnalyzer.java"
852
                                "classfile/engine/ClassParserUsingASM.java")
853
                   ;; The two classes were merged in the latter
854
                   (("StackMapTable") "StackMap")
855
                   (("Constants") "Const")
856
                   (("Const2") "Constants2")
857
                   (("getByteCodeOffsetDelta") "getByteCodeOffset"))
858
                 (substitute* "detect/DumbMethods.java"
859
                   (("import org.apache.bcel.classfile.Attribute;")
860
                    "import org.apache.bcel.classfile.Attribute;
861
import org.apache.bcel.Const;")
862
                   (("MAJOR_1") "Const.MAJOR_1"))
863
                 (substitute* "ba/AbstractFrameModelingVisitor.java"
864
                   (("VisitorSupportsInvokeDynamic") "Visitor"))
865
                 (substitute* "xml/XMLUtil.java"
866
                   (("<T> List<T>") "List<Node>"))
867
                 (substitute* "visitclass/PreorderVisitor.java"
868
                   (("import org.apache.bcel.classfile.Attribute;")
869
                    "import org.apache.bcel.classfile.Attribute;
870
import org.apache.bcel.Const;
871
import org.apache.bcel.classfile.BootstrapMethods;
872
import org.apache.bcel.classfile.ConstantInvokeDynamic;
873
import org.apache.bcel.classfile.ConstantMethodHandle;
874
import org.apache.bcel.classfile.ConstantMethodType;
875
import org.apache.bcel.classfile.MethodParameters;
876
import org.apache.bcel.classfile.ParameterAnnotationEntry;")
877
                   (("^}")
878
                    "    @Override
879
    public void visitBootstrapMethods(BootstrapMethods arg0) {
880
        // TODO Auto-generated method stub
881
    }
882
    @Override
883
    public void visitConstantInvokeDynamic(ConstantInvokeDynamic arg0) {
884
        // TODO Auto-generated method stub
885
    }
886
    @Override
887
    public void visitConstantMethodHandle(ConstantMethodHandle arg0) {
888
        // TODO Auto-generated method stub
889
    }
890
    @Override
891
    public void visitConstantMethodType(ConstantMethodType arg0) {
892
        // TODO Auto-generated method stub
893
    }
894
    @Override
895
    public void visitMethodParameters(MethodParameters arg0) {
896
        // TODO Auto-generated method stub
897
    }
898
    @Override
899
    public void visitParameterAnnotationEntry(ParameterAnnotationEntry arg0) {
900
        // TODO Auto-generated method stub
901
    }
902
}"))))
903
             #t))
904
         (add-before 'build 'remove-osx
905
           (lambda _
906
             ;; Requires AppleJavaExtensions.jar (com.apple.eawt.*)
907
             (delete-file "src/gui/edu/umd/cs/findbugs/gui2/OSXAdapter.java")
908
             #t))
909
         (add-before 'build 'find-dependencies
910
           (lambda* (#:key inputs #:allow-other-keys)
911
             (for-each
912
               (lambda (input)
913
                 (for-each
914
                   (lambda (file)
915
                     (display file) (display " -> ")
916
                     (display (string-append "lib/" (basename file))) (newline)
917
                     (newline)
918
                     (copy-file file (string-append "lib/" (basename file))))
919
                   (find-files (assoc-ref inputs input) ".*.jar")))
920
               '("java-jsr305" "java-commons-bcel-5" "java-dom4j" "java-asm"
921
                 "java-jcip-annotations" "java-commons-lang"))
922
             #t))
923
         (add-before 'build 'no-git
924
           (lambda _
925
             ;; We are not building a git revision
926
             (substitute* "build.xml"
927
               ((",-get-git-revision") ""))
928
             #t))
929
         (replace 'install
930
           (install-jars "build")))))
931
    (inputs
932
     `(("java-asm" ,java-asm)
933
       ("java-commons-bcel-5" ,java-commons-bcel-6.0)
934
       ;("java-commons-bcel-5" ,java-commons-bcel-5)
935
       ("java-commons-lang" ,java-commons-lang)
936
       ("java-dom4j" ,java-dom4j)
937
       ("java-jcip-annotations" ,java-jcip-annotations)
938
       ("java-jsr305" ,java-jsr305)))
939
    (native-inputs
940
     `(("unzip" ,unzip)
941
       ("java-jformatstring"
942
        ,(origin
943
           (method url-fetch)
944
           (uri (string-append "https://framagit.org/tyreunom/j-format-string/-/archive/"
945
                               "3.0.0/j-format-string-3.0.0.tar.gz"))
946
           (sha256
947
            (base32
948
             "0ypqnchxif7rkq3n9vshj3j0d24kw3wr6k00yb5i14jm59m21r90"))
949
           (modules '((guix build utils)))
950
           (snippet
951
             '(begin
952
                (for-each delete-file (find-files "." ".*.jar"))))))))
953
    (home-page "http://findbugs.sourceforge.net/")
954
    (synopsis "")
955
    (description "")
956
    (license license:asl2.0)))
957
958
(define-public java-spotbugs-annotations
959
  (package
960
    (name "java-spotbugs-annotations")
961
    (version "3.1.6")
962
    (source (origin
963
              (method url-fetch)
964
              (uri (string-append "https://github.com/spotbugs/spotbugs/archive/"
965
                                  version ".tar.gz"))
966
              (sha256
967
               (base32
968
                "198gzk2vs4id90fxgpida51ygwpb31xwkv6lf91kgmvqcsknf6y4"))
969
              (modules '((guix build utils)))
970
              (snippet
971
                '(begin
972
                   (for-each delete-file (find-files "." ".*.jar"))))))
973
    (build-system ant-build-system)
974
    (arguments
975
     `(#:jar-name "spotbugs.jar"
976
       #:source-dir "spotbugs-annotations/src/main/java"
977
       #:tests? #f))
978
    (inputs
979
     `(("java-jsr305" ,java-jsr305)))
980
    (home-page "https://spotbugs.github.io/")
981
    (synopsis "")
982
    (description "")
983
    (license license:asl2.0)))
984
985
(define-public java-spotbugs
986
  (package
987
    (inherit java-spotbugs-annotations)
988
    (name "java-spotbugs")
989
    (arguments
990
     `(#:jar-name "spotbugs.jar"
991
       #:source-dir "spotbugs/src/main/java:spotbugs-annotations/src/main/java:spotbugs/src/gui"
992
       #:test-dir "spotbugs/src/test"
993
       #:tests? #f; depend on jdepend
994
       #:phases
995
       (modify-phases %standard-phases
996
         (add-before 'build 'remove-osx
997
           (lambda _
998
             ;; Requires AppleJavaExtensions.jar (com.apple.eawt.*)
999
             (delete-file "spotbugs/src/gui/edu/umd/cs/findbugs/gui2/OSXAdapter.java")
1000
             #t)))))
1001
    (inputs
1002
     `(("java-asm" ,java-asm)
1003
       ("java-commons-bcel" ,java-commons-bcel)
1004
       ("java-commons-lang" ,java-commons-lang)
1005
       ("java-dom4j" ,java-dom4j)
1006
       ("java-jcip-annotations" ,java-jcip-annotations)
1007
       ("java-jformatstring" ,java-jformatstring)
1008
       ("java-jsr305" ,java-jsr305)))
1009
    (native-inputs
1010
     `(("java-junit" ,java-junit)
1011
       ("java-hamcrest-core" ,java-hamcrest-core)))
1012
    (synopsis "")
1013
    (description "")))
1014
1015
(define-public java-mangosdk-spi
1016
  (package
1017
    (name "java-mangosdk-spi")
1018
    (version "1")
1019
    (source (origin
1020
              (method git-fetch)
1021
              (uri (git-reference
1022
                     (url "https://github.com/rspilker/spi")
1023
                     (commit "ca933626bdd8084f9170fa478388bf1eabe10d8c")))
1024
              (file-name (string-append name "-" version))
1025
              (sha256
1026
               (base32
1027
                "1fbfn46923hd9lmby18zckannbw0fql9lrdf2wpbq3s9pm4zg0sc"))))
1028
    (build-system ant-build-system)
1029
    (arguments
1030
     `(#:jar-name "spi.jar"
1031
       #:source-dir "org.mangosdk.spi/src/main/java"
1032
       #:test-dir "org.mangosdk.spi/src/test"
1033
       #:tests? #f));; FIXME: tests don't build
1034
    (native-inputs
1035
     `(("java-junit" ,java-junit)))
1036
    (home-page "https://github.com/rspilker/spi")
1037
    (synopsis "")
1038
    (description "")
1039
    (license license:asl2.0)))
1040
1041
(define-public java-lombok-core
1042
  (package
1043
    (name "java-lombok-core")
1044
    (version "1.16.18")
1045
    (source (origin
1046
              (method url-fetch)
1047
              (uri (string-append "https://github.com/rzwitserloot/lombok/"
1048
                                  "archive/v" version ".tar.gz"))
1049
              (file-name (string-append name "-" version ".tar.gz"))
1050
              (sha256
1051
               (base32
1052
                "132p2aasip2n0633pas5xprmlzpwxc9i52na4hy7k3hzvd6bwd2j"))))
1053
    (build-system ant-build-system)
1054
    (arguments
1055
     `(#:jar-name "lombok-core.jar"
1056
       #:source-dir "src/core"
1057
       #:tests? #f)); No specific test
1058
    (inputs
1059
     `(("java-asm" ,java-asm)
1060
       ("java-eclipse-jdt-core" ,java-eclipse-jdt-core)
1061
       ("java-lombok-utils" ,java-lombok-utils)
1062
       ("java-mangosdk-spi" ,java-mangosdk-spi)
1063
       ("java-osgi-framework" ,java-osgi-framework)))
1064
    (home-page "https://projectlombok.org/")
1065
    (synopsis "")
1066
    (description "")
1067
    (license license:expat)))
1068
1069
(define-public java-lombok-utils
1070
  (package
1071
    (inherit java-lombok-core)
1072
    (name "java-lombok-utils")
1073
    (arguments
1074
     `(#:jar-name "lombok-utils.jar"
1075
       #:source-dir "src/utils"
1076
       #:tests? #f; No specific test
1077
       #:phases
1078
       (modify-phases %standard-phases
1079
         (add-before 'build 'fix-java8
1080
           (lambda _
1081
             (delete-file-recursively "src/utils/lombok/javac")
1082
             ;(delete-file-recursively "src/utils/lombok/javac/java6")
1083
             ;(delete-file-recursively "src/utils/lombok/javac/java7")
1084
             ;; Troubles with extending com.sun.tools.javac.code.Type
1085
             ;(delete-file-recursively "src/utils/lombok/javac/java")
1086
             #t)))))
1087
    (inputs
1088
     `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))))
1089
1090
(define-public java-asm-6
1091
  (package
1092
    (inherit java-asm)
1093
    (version "6.0")
1094
    (source (origin
1095
              (method url-fetch)
1096
              (uri (string-append "http://download.forge.ow2.org/asm/"
1097
                                  "asm-" version ".tar.gz"))
1098
              (sha256
1099
               (base32
1100
                "115l5pqblirdkmzi32dxx7gbcm4jy0s14y5wircr6h8jdr9aix00"))))
1101
    (arguments
1102
      (substitute-keyword-arguments (package-arguments java-asm)
1103
        ((#:make-flags flags)
1104
         `(list "-Dobjectweb.ant.tasks.path=foo"
1105
                (string-append "-Dbiz.aQute.bnd.path="
1106
                               (assoc-ref %build-inputs "java-aqute-bndlib")
1107
                               "/share/java/java-bndlib.jar")))))
1108
    (inputs
1109
     `(("java-aqute-bndlib" ,java-aqute-bndlib)))))
1110
1111
(define-public java-asm-7
1112
  (package
1113
    (inherit java-asm)
1114
    (version "7.0")
1115
    (source (origin
1116
              (method git-fetch)
1117
              (uri (git-reference
1118
                     (url "https://gitlab.ow2.org/asm/asm")
1119
                     (commit "1f6020a3f17d9d88dfd54a31370e91e3361c216b")))
1120
              (sha256
1121
               (base32
1122
                "1cpg9j86ckp5cmxlisfr4xr4i4v983xj2mkk0pkbygk3qarjfb88"))))
1123
    (arguments
1124
     `(#:jar-name "asm.jar"
1125
       #:source-dir "asm/src/main/java"
1126
       #:test-dir "asm/src/test"
1127
       ;; Tests require org.junit.jupiter
1128
       #:tests? #f))))
1129
1130
(define-public java-asm-tree-7
1131
  (package
1132
    (inherit java-asm-7)
1133
    (name "java-asm-tree")
1134
    (arguments
1135
     `(#:jar-name "asm-tree.jar"
1136
       #:source-dir "asm-tree/src/main/java"
1137
       #:test-dir "asm-tree/src/test"
1138
       ;; Tests require org.junit.jupiter
1139
       #:tests? #f))
1140
    (propagated-inputs
1141
     `(("java-asm-7" ,java-asm-7)))))
1142
1143
(define-public java-asm-commons-7
1144
  (package
1145
    (inherit java-asm-7)
1146
    (name "java-asm-commons")
1147
    (arguments
1148
     `(#:jar-name "asm-commons.jar"
1149
       #:source-dir "asm-commons/src/main/java"
1150
       #:test-dir "asm-commons/src/test"
1151
       ;; Tests require org.junit.jupiter
1152
       #:tests? #f))
1153
    (propagated-inputs
1154
     `(("java-asm-tree-7" ,java-asm-tree-7)))))
1155
1156
(define-public java-byte-buddy-dep
1157
  (package
1158
    (name "java-byte-buddy-dep")
1159
    (version "1.9.5")
1160
    (source (origin
1161
              (method url-fetch)
1162
              (uri (string-append "https://github.com/raphw/byte-buddy/archive/"
1163
                                  "byte-buddy-" version ".tar.gz"))
1164
              (sha256
1165
               (base32
1166
                "1ywnsp2qbs06sc830xli4fqv0rb2fi6w60bh3ly295h8bv2w9yws"))))
1167
    (build-system ant-build-system)
1168
    (arguments
1169
     `(#:jar-name "byte-buddy-dep.jar"
1170
       #:source-dir "byte-buddy-dep/src/main/java"
1171
       #:test-dir "byte-buddy-dep/src/test"
1172
       #:tests? #f; FIXME: can't build tests
1173
       #:phases
1174
       (modify-phases %standard-phases
1175
         (add-before 'build 'remove-annotations
1176
           (lambda _
1177
             (with-directory-excursion "byte-buddy-dep/src/main/java/net/bytebuddy"
1178
               (substitute* (find-files "." ".*.java")
1179
                 (("@EqualsAndHashCode.*") "")
1180
                 (("import lombok.EqualsAndHashCode;") "")
1181
                 (("@SuppressFBWarnings.*") "")
1182
                 (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "")))
1183
             #t)))))
1184
    (inputs
1185
     `(("java-asm-commons-7" ,java-asm-commons-7)))
1186
    (home-page "http://bytebuddy.net/")
1187
    (synopsis "")
1188
    (description "")
1189
    (license license:asl2.0)))
1190
1191
(define-public java-byte-buddy-agent
1192
  (package
1193
    (inherit java-byte-buddy-dep)
1194
    (name "java-byte-buddy-agent")
1195
    (arguments
1196
     `(#:jar-name "byte-buddy-agent.jar"
1197
       #:source-dir "byte-buddy-agent/src/main/java"
1198
       #:test-dir "byte-buddy-agent/src/test"
1199
       #:test-exclude (list "**/VirtualMachineForHotSpotTest.*")
1200
       #:phases
1201
       (modify-phases %standard-phases
1202
         (add-before 'build 'remove-annotations
1203
           (lambda _
1204
             (with-directory-excursion "byte-buddy-agent/src/main/java/net/bytebuddy"
1205
               (substitute* (find-files "." ".*.java")
1206
                 (("@SuppressFBWarnings.*") "")
1207
                 (("import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;") "")))
1208
             #t)))))
1209
    (inputs
1210
     `(("java-junixsocket-common" ,java-junixsocket-common)
1211
       ,@(package-inputs java-byte-buddy-dep)))
1212
    (native-inputs
1213
     `(("java-byte-buddy-dep" ,java-byte-buddy-dep)
1214
       ("java-cglib" ,java-cglib)
1215
       ("java-hamcrest-core" ,java-hamcrest-core)
1216
       ("java-junit" ,java-junit)
1217
       ("java-mockito-1" ,java-mockito-1)
1218
       ("java-objenesis" ,java-objenesis)))))
1219
1220
(define-public java-junixsocket-common
1221
  (package
1222
    (name "java-junixsocket-common")
1223
    (version "2.0.4")
1224
    (source (origin
1225
              (method url-fetch)
1226
              (uri (string-append "https://github.com/kohlschutter/junixsocket/archive/"
1227
                                  "junixsocket-parent-" version ".tar.gz"))
1228
              (sha256
1229
               (base32
1230
                "0c31qgry5pnhcnp3w62xb0ha0pic1d363rabn4fh8sdpmwnmakww"))))
1231
    (build-system ant-build-system)
1232
    (arguments
1233
     `(#:jar-name "junixsocket-common.jar"
1234
       #:source-dir "junixsocket-common/src/main/java"
1235
       #:tests? #f));no tests
1236
    (home-page "")
1237
    (synopsis "")
1238
    (description "")
1239
    (license license:asl2.0)))
1240
1241
(define-public java-spockframework-core
1242
  (package
1243
    (name "java-spockframework-core")
1244
    (version "1.2")
1245
    (source (origin
1246
              (method url-fetch)
1247
              (uri (string-append "https://github.com/spockframework/spock/"
1248
                                  "archive/spock-" version ".tar.gz"))
1249
              (sha256
1250
               (base32
1251
                "1nps60666y7d8gmy5bvp18cf1a5jy33kwj8fqhazrdikzphmmp0q"))))
1252
    (build-system ant-build-system)
1253
    (arguments
1254
     `(#:jar-name "spock-core.jar"
1255
       #:source-dir "spock-core/src/main/java"
1256
       #:tests? #f)); No tests
1257
    (inputs
1258
     `(("groovy" ,groovy)
1259
       ("java-asm" ,java-asm)
1260
       ("java-cglib" ,java-cglib)
1261
       ("java-hamcrest-core" ,java-hamcrest-core)
1262
       ("java-jetbrains-annotations" ,java-jetbrains-annotations)
1263
       ("java-junit" ,java-junit)
1264
       ("java-objenesis" ,java-objenesis)
1265
       ("java-byte-buddy-dep" ,java-byte-buddy-dep)))
1266
    (home-page "http://spockframework.org/")
1267
    (synopsis "")
1268
    (description "")
1269
    (license license:asl2.0)))
1270
1271
(define-public java-jcip-annotations
1272
  (package
1273
    (name "java-jcip-annotations")
1274
    (version "1.0")
1275
    (source (origin
1276
              (method url-fetch)
1277
              (uri "http://jcip.net/jcip-annotations-src.jar")
1278
              (sha256
1279
               (base32
1280
                "1z4y6ga2yc01z4qwcdi6mawky8kk6pg3j1l7r3rwb9001fz5q7r2"))))
1281
    (build-system ant-build-system)
1282
    (arguments
1283
     `(#:jar-name "jcip-annotations.jar"
1284
       #:source-dir "."
1285
       #:tests? #f)); No tests
1286
    (home-page "http://jcip.net")
1287
    (synopsis "Annotations for concurrency")
1288
    (description "JCIP annotations implement the annotations described in the
1289
\"Java Concurrency In Practice\" (JCIP) book.")
1290
    (license license:cc-by2.0))); cc-by2.5
1291
1292
(define-public java-brotli-dec
1293
  (package
1294
    (name "java-brotli-dec")
1295
    (version "0.6.0")
1296
    (source (origin
1297
              (method url-fetch)
1298
              (uri (string-append "https://github.com/google/brotli/archive/v"
1299
                                  version ".tar.gz"))
1300
              (sha256
1301
               (base32
1302
                "03zfr6lw6ry643l6pbg0myg52clypxd0y0igd84dslchf3svvkb9"))))
1303
    (build-system ant-build-system)
1304
    (native-inputs
1305
     `(("java-junit" ,java-junit)))
1306
    (arguments
1307
     `(#:jar-name "brotli-dec.jar"
1308
       #:tests? #f; no test target
1309
       #:source-dir "java"))
1310
    (home-page "https://brotli.org")
1311
    (synopsis "Lossless compression algorithm")
1312
    (description "Brotli is a generic-purpose lossless compression algorithm
1313
that compresses data using a combination of a modern variant of the LZ77
1314
algorithm, Huffman coding and 2nd order context modeling, with a compression
1315
ratio comparable to the best currently available general-purpose compression
1316
methods.  It is similar in speed with deflate but offers more dense compression.")
1317
    (license license:expat)))
1318
1319
(define-public java-ning-compress
1320
  (package
1321
    (name "java-ning-compress")
1322
    (version "1.0.4")
1323
    (source (origin
1324
              (method git-fetch)
1325
              (uri (git-reference
1326
                     (url "https://github.com/ning/compress.git")
1327
                     (commit (string-append "compress-lzf-" version))))
1328
              (file-name (git-file-name name version))
1329
              (sha256
1330
               (base32
1331
                "1scyws9rs268zvi3p6jvq9yc061zrn49ppp7v91y52si8b1xpbg8"))))
1332
    (build-system ant-build-system)
1333
    (arguments
1334
     `(#:jar-name "ning-compress.jar"
1335
       #:source-dir "src/main/java"
1336
       #:tests? #f; require testng, not junit
1337
       #:phases
1338
       (modify-phases %standard-phases
1339
         (add-before 'check 'fix-tests
1340
           (lambda _
1341
             (substitute* "src/test/lzf/TestLZF.java"
1342
               (("package lzf;") "package lzf;
1343
1344
import com.ning.compress.lzf.*;
1345
import org.junit.Assert.*;"))
1346
             #t)))))
1347
    (native-inputs
1348
     `(("java-junit" ,java-junit)
1349
       ("java-testng" ,java-testng)))
1350
    (home-page "")
1351
    (synopsis "")
1352
    (description "")
1353
    (license license:asl2.0)))
1354
1355
(define-public java-lzma-sdk
1356
  (package
1357
    (name "java-lzma-sdk")
1358
    (version "18.06")
1359
    (source (origin
1360
              (method url-fetch)
1361
              (uri "https://www.7-zip.org/a/lzma1806.7z")
1362
              (sha256
1363
               (base32
1364
                "0mcs90vjmp8wjqxvrjq0bl2d70njg8md1vy3zr9dd22vwfpzgy01"))))
1365
    (build-system ant-build-system)
1366
    (arguments
1367
     `(#:source-dir "Java"
1368
       #:jar-name "lzma.jar"
1369
       #:tests? #f
1370
       #:phases
1371
       (modify-phases %standard-phases
1372
         (replace 'unpack
1373
           (lambda* (#:key source #:allow-other-keys)
1374
             (invoke "7z" "x" source)
1375
             #t)))))
1376
    (native-inputs
1377
     `(("p7zip" ,p7zip)))
1378
    (home-page "")
1379
    (synopsis "")
1380
    (description "")
1381
    (license license:public-domain)))
1382
1383
(define-public java-lzma
1384
  (package
1385
    (name "java-lzma")
1386
    (version "1.3")
1387
    (source (origin
1388
              (method git-fetch)
1389
              (uri (git-reference
1390
                     (url "https://github.com/jponge/lzma-java.git")
1391
                     (commit (string-append "lzma-java-" version))))
1392
              (file-name (git-file-name name version))
1393
              (sha256
1394
               (base32
1395
                "1cmgd95avjq1fsr1bx91cjcvz6ifwgq1iwyzvwvnr6s1w0r8m6hx"))))
1396
    (build-system ant-build-system)
1397
    (arguments
1398
     `(#:jar-name "lzma.jar"
1399
       #:source-dir "src/main/java"
1400
       #:phases
1401
       (modify-phases %standard-phases
1402
         (add-before 'check 'copy-resources
1403
           (lambda _
1404
             (mkdir-p "target/test-classes")
1405
             (copy-recursively "src/test/resources" "target/test-classes")
1406
             #t)))))
1407
    (native-inputs
1408
     `(("java-commons-io" ,java-commons-io)
1409
       ("java-junit" ,java-junit)))
1410
    (home-page "")
1411
    (synopsis "")
1412
    (description "")
1413
    (license license:asl2.0)))
1414
1415
(define-public java-commons-compress-latest
1416
  (package
1417
    (inherit java-commons-compress)
1418
    (version "1.14")
1419
    (source (origin
1420
              (method url-fetch)
1421
              (uri (string-append "mirror://apache/commons/compress/source/"
1422
                                  "commons-compress-" version "-src.tar.gz"))
1423
              (sha256
1424
               (base32
1425
                "1msfjbknfgx78j96fsiqk44r45plz10x9sw88flrpf3yaf4d3br1"))))
1426
    (inputs
1427
     `(("java-brotli-dec" ,java-brotli-dec)
1428
       ,@(package-inputs java-commons-compress)))))
1429
1430
(define-public java-zstd
1431
  (package
1432
    (name "java-zstd")
1433
    (version "1.3.0-1")
1434
    (source (origin
1435
              (method url-fetch)
1436
              (uri (string-append "https://github.com/luben/zstd-jni/archive/v"
1437
                                  version ".tar.gz"))
1438
              (file-name (string-append name "-" version ".tar.gz"))
1439
              (sha256
1440
               (base32
1441
                "1an6gqps3n1ddxdz8vyzdrq7xz2p6nvwdwpmwf52mfia0w71xl9a"))))
1442
    (build-system ant-build-system)
1443
    (arguments
1444
     `(#:jar-name "java-zstd.jar"
1445
       #:source-dir "src/main/java"
1446
       #:tests? #f)); Require scala
1447
    (inputs
1448
     `(("zstd" ,zstd)))
1449
    (home-page "https://github.com/luben/zstd-jni")
1450
    (synopsis "")
1451
    (description "")
1452
    (license license:bsd-2)))
1453
1454
(define-public java-jboss-annotations-api-spec
1455
  (package
1456
    (name "java-jboss-annotations-api-spec")
1457
    (version "1.2")
1458
    (source (origin
1459
              (method url-fetch)
1460
              (uri (string-append "https://github.com/jboss/jboss-annotations-api_spec/"
1461
                                  "archive/jboss-annotations-api_" version
1462
                                  "_spec-1.0.1.Final.tar.gz"))
1463
              (sha256
1464
               (base32
1465
                "0qmczwma8wiyqvs95yy6dibjhkzqyhfvik1qk01bxp9kzah9k882"))))
1466
    (build-system ant-build-system)
1467
    (arguments
1468
     `(#:jar-name "java-jboss-annotations-api_spec.jar"
1469
       #:source-dir "."
1470
       #:tests? #f)); no tests
1471
    (home-page "https://github.com/jboss/jboss-annotations-api_spec")
1472
    (synopsis "")
1473
    (description "")
1474
    (license (list license:gpl2 license:cddl1.0)))); either gpl2 only or cddl.
1475
1476
(define-public java-aspectj-weaver
1477
  (package
1478
    (name "java-aspectj-weaver")
1479
    (version "1.9.1")
1480
    (source (origin
1481
              (method url-fetch)
1482
              (uri (string-append "https://eclipsemirror.itemis.de/eclipse/tools"
1483
                                  "/aspectj/aspectj-" version "-src.jar"))
1484
              (sha256
1485
               (base32
1486
                ;"0r16lgzindqf4xhdmdyk9j6p15nak2fwhqlp42yg3axvn8fx6r23"))))
1487
                "1g8g6ynwqg93x6842a0xhrgjcfnszd1wldsw3v3dp3xpc8makrfp"))))
1488
    (build-system ant-build-system)
1489
    (arguments
1490
     `(#:jar-name "java-aspectj-weaver.jar"
1491
       #:source-dir "."
1492
       #:tests? #f; no tests
1493
       #:phases
1494
       (modify-phases %standard-phases
1495
         (add-before 'configure 'unpack-jar
1496
           (lambda _
1497
             (mkdir-p "weaver-src")
1498
             (chdir "weaver-src")
1499
             (zero? (system* "jar" "xf" "../src/aspectjweaver1.9.1-src.jar"))))
1500
         (add-after 'unpack-jar 'remove-propriatory
1501
           (lambda _
1502
             ;; this file depends on JRockit, for which I can't find a free implementation
1503
             (delete-file "org/aspectj/weaver/loadtime/JRockitAgent.java")
1504
             #t))
1505
         (add-after 'unpack-jar 'rename-lib-back
1506
           (lambda _
1507
             ;; aj.org.objectweb.asm is actually java-asm, renamed
1508
             (substitute* "org/aspectj/weaver/bcel/asm/StackMapAdder.java"
1509
               (("aj.org.objectweb.asm") "org.objectweb.asm"))
1510
             #t))
1511
         (add-before 'build 'copy-ressource
1512
           (lambda _
1513
             (mkdir-p "build/classes")
1514
             (copy-file "aspectj_1_5_0.dtd" "build/classes/aspectj_1_5_0.dtd")
1515
             #t)))))
1516
    (inputs
1517
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
1518
       ("java-asm" ,java-asm)))
1519
    (home-page "https://www.eclipse.org/aspectj")
1520
    (synopsis "")
1521
    (description "")
1522
    (license license:asl2.0)))
1523
1524
(define-public java-aspectj-rt
1525
  (package
1526
    (inherit java-aspectj-weaver)
1527
    (name "java-aspectj-rt")
1528
    (arguments
1529
     `(#:jar-name "java-aspectj-rt.jar"
1530
       #:source-dir "."
1531
       #:tests? #f; no tests
1532
       #:phases
1533
       (modify-phases %standard-phases
1534
         (add-before 'configure 'unpack-jar
1535
           (lambda _
1536
             (mkdir-p "rt-src")
1537
             (chdir "rt-src")
1538
             (zero? (system* "jar" "xf" "../src/aspectjrt1.9.1-src.jar")))))))
1539
    (inputs
1540
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
1541
       ("java-asm" ,java-asm)))
1542
    (description "")))
1543
1544
;(define-public java-aspectj-tools
1545
;  (package
1546
;    (inherit java-aspectj-weaver)
1547
;    (name "java-aspectj-tools")
1548
;    (arguments
1549
;     `(#:jar-name "java-aspectj-tools.jar"
1550
;       #:source-dir "."
1551
;       #:tests? #f; no tests
1552
;       #:phases
1553
;       (modify-phases %standard-phases
1554
;         (add-before 'configure 'unpack-jar
1555
;           (lambda _
1556
;             (mkdir-p "tools-src")
1557
;             (chdir "tools-src")
1558
;             (invoke "jar" "xf" "../src/aspectjtools1.9.1-src.jar")
1559
;             (for-each delete-file (find-files ".." ".*.jar$"))
1560
;             #t))
1561
;         (add-before 'build 'copy-resources
1562
;           (lambda _
1563
;             (for-each delete-file (find-files "." ".*.class$"))
1564
;             (mkdir-p "build/classes")
1565
;             (for-each
1566
;               (lambda (file)
1567
;                 (mkdir-p (string-append "build/classes/" (dirname file)))
1568
;                 (copy-file file (string-append "build/classes/" file)))
1569
;               (append
1570
;                 (find-files "." ".*.gif$")
1571
;                 (find-files "." ".*.html$")
1572
;                 (find-files "." ".*.properties$")
1573
;                 (find-files "." ".*.rsc$")
1574
;                 (find-files "." ".*.xml$")))
1575
;             #t)))))
1576
;    (inputs
1577
;     `(("java-asm" ,java-asm)
1578
;       ("java-aspectj-weaver" ,java-aspectj-weaver)
1579
;       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1580
;       ("java-eclipse-core-resources" ,java-eclipse-core-resources)
1581
;       ("java-eclipse-core-runtime" ,java-eclipse-core-runtime)
1582
;       ("java-eclipse-text" ,java-eclipse-text)))
1583
;    (description "")))
1584
1585
(define-public java-jsr107
1586
  (package
1587
    (name "java-jsr107")
1588
    (version "1.1.0")
1589
    (source (origin
1590
              (method url-fetch)
1591
              (uri (string-append "https://github.com/jsr107/jsr107spec/archive/v"
1592
                                  version ".tar.gz"))
1593
              (sha256
1594
               (base32
1595
                "19gxsanr9l3cbvpxzvvgs2cgxbpbl6llmfg7nbmdzxpv7mhmprxs"))))
1596
    (build-system ant-build-system)
1597
    (arguments
1598
     `(#:jar-name "java-jsr107.jar"
1599
       #:source-dir "src/main/java"
1600
       ; no tests
1601
       #:tests? #f))
1602
    (inputs
1603
     `(("java-cdi-api" ,java-cdi-api)))
1604
    (home-page "https://github.com/jsr107/jsr107spec")
1605
    (synopsis "")
1606
    (description "")
1607
    (license license:asl2.0)))
1608
1609
(define-public java-minimal-json
1610
  (package
1611
    (name "java-minimal-json")
1612
    (version "0.9.5")
1613
    (source (origin
1614
              (method url-fetch)
1615
              (uri (string-append "https://github.com/ralfstx/minimal-json/archive/"
1616
                                  version ".tar.gz"))
1617
              (file-name (string-append name "-" version ".tar.gz"))
1618
              (sha256
1619
               (base32
1620
                "0y51icz6bdzd3x9nzf9npwwc7inag3hn1b685izys7qy0kgw9nih"))))
1621
    (build-system ant-build-system)
1622
    (arguments
1623
     `(#:jar-name "java-minimal-json.jar"
1624
       #:source-dir "com.eclipsesource.json/src/main/java"
1625
       #:test-dir "com.eclipsesource.json/src/test"
1626
       #:test-exclude
1627
       ;; Unable to set MockitoNamingPolicy on cglib generator which creates FastClasses
1628
       (list "**/JsonValue_Test.java")))
1629
    (native-inputs
1630
     `(("java-asm" ,java-asm)
1631
       ("java-cglib" ,java-cglib)
1632
       ("java-hamcrest-core" ,java-hamcrest-core)
1633
       ("java-junit" ,java-junit)
1634
       ("java-mockito-1" ,java-mockito-1)
1635
       ("java-objenesis" ,java-objenesis)))
1636
    (home-page "https://github.com/ralfstx/minimal-json")
1637
    (synopsis "")
1638
    (description "")
1639
    (license license:expat)))
1640
1641
(define-public javacc-6
1642
  (package
1643
    (inherit javacc)
1644
    (version "6.1.3")
1645
    (source (origin
1646
              (method url-fetch)
1647
              (uri (string-append "https://github.com/javacc/javacc/archive/release_"
1648
                                  (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
1649
                                  ".tar.gz"))
1650
              (sha256
1651
               (base32
1652
                "03xpipk365szfzrab7divlr1i1r58j1hh47mhj5cpj1kv9zc2p6c"))))
1653
    (arguments
1654
     `(#:tests? #f
1655
       #:phases
1656
       (modify-phases %standard-phases
1657
         (add-after 'unpack 'delete-bundled-libs
1658
           (lambda _
1659
             (delete-file-recursively "lib")
1660
              #t))
1661
         (replace 'install (install-jars "target")))))
1662
    (native-inputs
1663
     `(("java-junit" ,java-junit)))))
1664
1665
(define-public java-slf4j-jdk14
1666
  (package
1667
    (inherit java-slf4j-api)
1668
    (name "java-slf4j-jdk14")
1669
    (arguments
1670
     `(#:jar-name "slf4j-jdk14.jar"
1671
       #:source-dir "slf4j-jdk14/src/main"
1672
       #:test-dir "slf4j-jdk14/src/test"
1673
       ;; Require test files from slf4j-api
1674
       #:tests? #f))
1675
    (inputs
1676
     `(("java-slf4j-api" ,java-slf4j-api)))
1677
    (native-inputs
1678
     `(("java-junit" ,java-junit)
1679
       ("java-hamcrest-core" ,java-hamcrest-core)))
1680
    (synopsis "")
1681
    (description "")))
1682
1683
(define-public java-log4j-over-slf4j
1684
  (package
1685
    (inherit java-slf4j-api)
1686
    (name "java-log4j-over-slf4j")
1687
    (arguments
1688
     `(#:jar-name "log4j-over-slf4j.jar"
1689
       #:source-dir "log4j-over-slf4j/src/main"
1690
       #:test-dir "log4j-over-slf4j/src/test"))
1691
    (inputs
1692
     `(("java-slf4j-api" ,java-slf4j-api)))
1693
    (native-inputs
1694
     `(("java-junit" ,java-junit)
1695
       ("java-hamcrest-core" ,java-hamcrest-core)
1696
       ("java-slf4j-jdk14" ,java-slf4j-jdk14)))
1697
    (synopsis "")
1698
    (description "")))
1699
1700
;; NOTE FOR JDOM:
1701
;;
1702
;; - remove lib/
1703
;; - add dependencies (cobertura, ...)
1704
;; - remove java 1.2 version
1705
;; - break dependency cycle with jaxen
1706
(define-public java-jdom-for-freemarker
1707
  (package
1708
    (inherit java-jdom)
1709
    (version "1.0b8")
1710
    (source (origin
1711
              (method url-fetch)
1712
              (uri "http://jdom.org/dist/binary/archive/jdom-b8.tar.gz")
1713
              (sha256
1714
               (base32
1715
                "1y26baiamx67zl2lkqrjd19my3vz4xbjhv9l1iylirq0fcr9v7a1"))))
1716
    (arguments
1717
     `(#:build-target "package"
1718
       #:tests? #f; tests are part of the package target
1719
       #:phases
1720
       (modify-phases %standard-phases
1721
         ;(add-before 'build 'remove-collections
1722
         ;  (lambda _
1723
         ;    (delete-file "lib/collections.jar")
1724
         ;    #t))
1725
         (replace 'install
1726
           (lambda* (#:key outputs #:allow-other-keys)
1727
             (let ((jar-dir (string-append (assoc-ref outputs "out") "/share/java")))
1728
               (mkdir-p jar-dir)
1729
               (install-file "build/jdom.jar" jar-dir)
1730
               #t))))))))
1731
1732
(define-public java-jdom-for-intellij
1733
  (package
1734
    (inherit java-jdom)
1735
    (version "2.0.6-intellij")
1736
    (source (origin
1737
              (method git-fetch)
1738
              (uri (git-reference
1739
                     (url "https://github.com/JetBrains/intellij-deps-jdom")
1740
                     (commit "da8644efbf3b50b1fd427953298c0a8cb330f54c")))
1741
              (file-name (git-file-name "java-jdom" version))
1742
              (sha256
1743
               (base32
1744
                "0kwzg8flrn6qb9jbcriiqx56chb6j6pjk19xqa6rarf42zad88rc"))
1745
              (modules '((guix build utils)))
1746
              (snippet
1747
                `(begin
1748
                   (for-each delete-file (find-files "." ".*.jar$"))
1749
                   (delete-file "build.xml")
1750
                   #t))))
1751
    (arguments
1752
     `(#:jar-name "jdom.jar"
1753
       #:tests? #f
1754
       #:source-dir "core/src/java"))
1755
    (inputs
1756
     `(("java-jaxen" ,java-jaxen)))))
1757
1758
(define-public java-apache-freemarker
1759
  (package
1760
    (name "java-apache-freemarker")
1761
    (version "2.3.28")
1762
    (source (origin
1763
              (method url-fetch)
1764
              (uri (string-append "mirror://apache/freemarker/engine/" version
1765
                                  "/source/apache-freemarker-" version "-src.tar.gz"))
1766
              (sha256
1767
               (base32
1768
                "0zar7lrjliklldihhpn0v5j3n4jlc022rj299yzmwc1yqzj7nzmv"))))
1769
    (build-system ant-build-system)
1770
    (arguments
1771
     `(#:jar-name "java-apache-freemarker.jar"
1772
       #:source-dir "src/main/java"
1773
       #:test-dir "src/test"
1774
       #:tests? #f; TODO: require spring-framework-test.
1775
       ;#:test-target "test"
1776
       #:phases
1777
       (modify-phases %standard-phases
1778
         (add-before 'build 'copy-ressources
1779
           (lambda _
1780
             (copy-recursively "src/main/resources" "build/classes")
1781
             #t))
1782
         (add-before 'build 'remove-unpackaged-dependencies
1783
           ;; TODO: package these dependencies
1784
           (lambda _
1785
             (delete-file-recursively "src/main/java/freemarker/ext/jython")
1786
         (delete-file "src/test/java/freemarker/core/ObjectBuilderSettingsTest.java")
1787
             (delete-file-recursively "src/main/java/freemarker/ext/rhino")
1788
             ;; This class depends on javarebel, a non-free package
1789
             (delete-file "src/main/java/freemarker/ext/beans/JRebelClassChangeNotifier.java")
1790
             (delete-file "src/main/java/freemarker/ext/ant/UnlinkedJythonOperationsImpl.java")
1791
             (delete-file "src/main/java/freemarker/template/utility/JythonRuntime.java")
1792
             #t))
1793
     (add-before 'build 'update-jsp
1794
       (lambda _
1795
         (substitute* "src/main/java/freemarker/ext/jsp/FreeMarkerJspFactory.java"
1796
           (("^}$")
1797
            "@Override
1798
public JspApplicationContext getJspApplicationContext(ServletContext c) {
1799
  throw new UnsupportedOperationException();
1800
}
1801
}")
1802
           (("package freemarker.ext.jsp;")
1803
            "package freemarker.ext.jsp;
1804
1805
import javax.servlet.ServletContext;
1806
import javax.servlet.jsp.JspApplicationContext;"))
1807
         (substitute* "src/main/java/freemarker/ext/jsp/_FreeMarkerPageContext2.java"
1808
           (("^}")
1809
            "@Override
1810
public ELContext getELContext() {
1811
  throw new UnsupportedOperationException();
1812
}
1813
}")
1814
           (("package freemarker.ext.jsp;")
1815
            "package freemarker.ext.jsp;
1816
1817
import javax.el.ELContext;"))
1818
         #t))
1819
         (add-before 'build 'run-javacc
1820
           (lambda _
1821
             (invoke "java" "-cp" (getenv "CLASSPATH") "javacc"
1822
                     "-OUTPUT_DIRECTORY=src/main/java/freemarker/core"
1823
                     "src/main/javacc/FTL.jj")
1824
             #t)))))
1825
    (inputs
1826
     `(("java-avalon-logkit" ,java-avalon-logkit)
1827
       ("java-commons-jxpath" ,java-commons-jxpath)
1828
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1829
       ("java-dom4j" ,java-dom4j)
1830
       ("java-jaxen" ,java-jaxen)
1831
       ("java-jdom" ,java-jdom-for-freemarker)
1832
       ("java-log4j-over-slf4j" ,java-log4j-over-slf4j)
1833
       ("java-slf4j-api" ,java-slf4j-api)
1834
       ("java-spotbugs-annotations" ,java-spotbugs-annotations)
1835
       ("java-tomcat" ,java-tomcat)
1836
       ("java-xalan" ,java-xalan)))
1837
    (native-inputs
1838
     `(("javacc" ,javacc-6)
1839
       ("java-commons-collections" ,java-commons-collections)
1840
       ("java-commons-io" ,java-commons-io)
1841
       ("java-commons-lang" ,java-commons-lang)
1842
       ("java-guava" ,java-guava)
1843
       ("java-hamcrest-all" ,java-hamcrest-all)
1844
       ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
1845
       ("java-eclipse-jetty-webapp" ,java-eclipse-jetty-webapp)
1846
       ("java-junit" ,java-junit)))
1847
    (home-page "")
1848
    (synopsis "")
1849
    (description "")
1850
    (license license:expat)))
1851
1852
(define java-hazelcast-version "3.10.4")
1853
;; Required versions are described in pom.xml and hazelcast-client/pom.xml in
1854
;; the hazelcast tarball.
1855
(define java-hazelcast-client-protocol-version "1.6.0")
1856
(define java-hazelcast-aws-version "2.0.0")
1857
1858
(define java-hazelcast-client-protocol-source
1859
  (origin
1860
    (method url-fetch)
1861
    (uri (string-append "https://github.com/hazelcast/"
1862
                        "hazelcast-client-protocol/archive/v"
1863
                        java-hazelcast-client-protocol-version ".tar.gz"))
1864
    (file-name (string-append "hazelcast-client-protocol-" java-hazelcast-client-protocol-version ".tar.gz"))
1865
    (sha256
1866
     (base32
1867
      "0snd5cyjgg007nfhhsv2w0n3jybblbcjmpf3qpy4x4m38729gly8"))))
1868
1869
(define java-hazelcast-source
1870
  (origin
1871
    (method url-fetch)
1872
    (uri (string-append "https://github.com/hazelcast/hazelcast/archive/v"
1873
                        java-hazelcast-version ".tar.gz"))
1874
    (file-name (string-append "java-hazelcast-" java-hazelcast-version ".tar.gz"))
1875
    (sha256
1876
     (base32
1877
      "0bmhjh15xcqc4k77ncfw60b0gfnh6ndc3rr8am09ys8yga4w59hf"))))
1878
1879
(define java-hazelcast-aws-source
1880
  (origin
1881
    (method url-fetch)
1882
    (uri (string-append "https://github.com/hazelcast/hazelcast-aws/"
1883
                        "archive/v" java-hazelcast-aws-version ".tar.gz"))
1884
    (file-name (string-append "java-hazelcast-aws-" java-hazelcast-aws-version ".tar.gz"))
1885
    (sha256
1886
     (base32
1887
      "0hdih6b4rvcflxn2c3wbn8a6aw13bb0nwmifyi118wr6cqrlv02p"))))
1888
1889
(define-public java-hazelcast-code-generator
1890
  (package
1891
    (name "java-hazelcast-code-generator")
1892
    (version java-hazelcast-client-protocol-version)
1893
    (source java-hazelcast-client-protocol-source)
1894
    (build-system ant-build-system)
1895
    (arguments
1896
     `(#:jar-name "java-hazelcast-code-generator.jar"
1897
       #:source-dir "hazelcast-code-generator/src/main/java"
1898
       #:tests? #f; no tests
1899
       #:phases
1900
       (modify-phases %standard-phases
1901
         (add-before 'build 'copy-resources
1902
           (lambda _
1903
             (copy-recursively "hazelcast-code-generator/src/main/resources"
1904
                               "build/classes")
1905
             #t)))))
1906
    (inputs
1907
     `(("java-apache-freemarker" ,java-apache-freemarker)))
1908
    (home-page "https://hazelcast.org")
1909
    (synopsis "")
1910
    (description "")
1911
    (license license:asl2.0)))
1912
1913
(define-public java-hazelcast-client-protocol
1914
  (package
1915
    (name "java-hazelcast-client-protocol")
1916
    (version java-hazelcast-client-protocol-version)
1917
    (source java-hazelcast-client-protocol-source)
1918
    (build-system ant-build-system)
1919
    (arguments
1920
     `(#:jar-name "java-hazelcast-client-protocol.jar"
1921
       #:source-dir "hazelcast/src/main/java"
1922
       #:test-dir "hazelcast/src/test"))
1923
    (inputs
1924
     `(("java-hazelcast-code-generator" ,java-hazelcast-code-generator)))
1925
    (home-page "https://hazelcast.org")
1926
    (synopsis "")
1927
    (description "")
1928
    (license license:asl2.0)))
1929
1930
(define-public java-hazelcast-bootstrap
1931
  (package
1932
    (name "java-hazelcast-bootstrap")
1933
    (version java-hazelcast-version)
1934
    (source java-hazelcast-source)
1935
    (build-system ant-build-system)
1936
    (arguments
1937
     `(#:jar-name "java-hazelcast-bootstrap.jar"
1938
       #:source-dir
1939
       (string-append "hazelcast-client/src/main/java:hazelcast/src/main/java:"
1940
                      "hazelcast-client-protocol-" ,java-hazelcast-client-protocol-version
1941
                      "/hazelcast/src/main/java:hazelcast-aws-" ,java-hazelcast-aws-version
1942
                      "/src/main/java")
1943
       #:tests? #f
1944
       #:phases
1945
       (modify-phases %standard-phases
1946
         (add-before 'build 'use-annotation-processor
1947
           (lambda _
1948
             (substitute* "build.xml"
1949
               (("classpath=\"@refidclasspath\" />")
1950
                "classpath=\"@refidclasspath\">
1951
     <compilerarg line=\"-processor com.hazelcast.client.protocol.generator.CodecCodeGenerator\"/>
1952
     <compilerarg line=\"-s hazelcast/src/main/java\"/>
1953
</javac>")
1954
               (("<javac") "<javac source=\"1.6\""))
1955
             #t))
1956
         (add-before 'build 'unpack-aws
1957
           (lambda* (#:key inputs #:allow-other-keys)
1958
             (invoke "tar" "xzf" (assoc-ref inputs "java-hazelcast-aws-source"))
1959
             #t))
1960
         (add-before 'build 'unpack-client-protocol
1961
           (lambda* (#:key inputs #:allow-other-keys)
1962
             (invoke "tar" "xzf" (assoc-ref inputs "java-hazelcast-client-protocol-source"))
1963
             #t))
1964
         (add-before 'build 'fix-renamed-dependencies
1965
           (lambda _
1966
             (substitute* '("hazelcast-client/src/main/java/com/hazelcast/client/spi/impl/AwsAddressProvider.java"
1967
                            "hazelcast-client/src/main/java/com/hazelcast/client/spi/impl/discovery/HazelcastCloudDiscovery.java"
1968
                            "hazelcast-aws-2.0.0/src/main/java/com/hazelcast/aws/impl/DescribeInstances.java")
1969
               (("com.hazelcast.com.eclipsesource.json") "com.eclipsesource.json"))
1970
             #t))
1971
         (add-before 'build 'copy-template
1972
           (lambda _
1973
             (with-directory-excursion "hazelcast/src/main"
1974
               (copy-file "template/com/hazelcast/instance/GeneratedBuildProperties.java"
1975
                            "java/com/hazelcast/instance/GeneratedBuildProperties.java")
1976
               (substitute* "java/com/hazelcast/instance/GeneratedBuildProperties.java"
1977
                 (("\\$\\{project.version\\}") ,version)
1978
                 (("\\$\\{timestamp\\}") "0")
1979
                 (("\\$\\{git.commit.id.abbrev\\}") "0f51fcf")
1980
                 (("\\$\\{hazelcast.distribution\\}") "Hazelcast")
1981
                 (("\\$\\{hazelcast.serialization.version\\}") "1")))
1982
             #t))
1983
         (add-before 'build 'remove-package-info
1984
           (lambda _
1985
             (for-each delete-file (find-files "." "package-info.java"))
1986
             #t)))))
1987
    (inputs
1988
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
1989
       ("java-apache-freemarker" ,java-apache-freemarker)
1990
       ("java-hazelcast-aws-source" ,java-hazelcast-aws-source)
1991
       ("java-hazelcast-code-generator" ,java-hazelcast-code-generator)
1992
       ("java-hazelcast-client-protocol-source" ,java-hazelcast-client-protocol-source)
1993
       ("java-jsr107" ,java-jsr107)
1994
       ("java-jsr305" ,java-jsr305)
1995
       ("java-log4j-1.2" ,java-log4j-1.2)
1996
       ("java-log4j-api" ,java-log4j-api)
1997
       ("java-minimal-json" ,java-minimal-json)
1998
       ("java-osgi-core" ,java-osgi-core)
1999
       ("java-slf4j-api" ,java-slf4j-api)
2000
       ("java-spotbugs-annotations" ,java-spotbugs-annotations)))
2001
    (home-page "https://hazelcast.org")
2002
    (synopsis "")
2003
    (description "")
2004
    (license license:asl2.0)))
2005
2006
(define-public java-hazelcast
2007
  (package
2008
    (inherit java-hazelcast-bootstrap)
2009
    (name "java-hazelcast")
2010
    (arguments
2011
     `(#:jar-name "java-hazelcast.jar"
2012
       #:source-dir "hazelcast/src/main/java"
2013
       #:test-dir "hazelcast/src/test"
2014
       #:phases
2015
       (modify-phases %standard-phases
2016
         (add-before 'build 'copy-resources
2017
           (lambda _
2018
             (copy-recursively "hazelcast/src/main/resources" "build/classes")
2019
             #t))
2020
         (add-before 'build 'copy-template
2021
           (lambda _
2022
             (with-directory-excursion "hazelcast/src/main"
2023
               (copy-file "template/com/hazelcast/instance/GeneratedBuildProperties.java"
2024
                            "java/com/hazelcast/instance/GeneratedBuildProperties.java")
2025
               (substitute* "java/com/hazelcast/instance/GeneratedBuildProperties.java"
2026
                 (("\\$\\{project.version\\}") ,version)
2027
                 (("\\$\\{timestamp\\}") "0")
2028
                 (("\\$\\{git.commit.id.abbrev\\}") "0f51fcf")
2029
                 (("\\$\\{hazelcast.distribution\\}") "Hazelcast")
2030
                 (("\\$\\{hazelcast.serialization.version\\}") "1")))
2031
             #t))
2032
         (add-before 'build 'remove-fb
2033
           (lambda _
2034
             (substitute* (find-files "hazelcast/src/main/java" ".*.java")
2035
              ; (("@SuppressFBWarnings.*") "")
2036
              ; (("justification = \".*") "")
2037
               (("import edu.umd.cs.findbugs.*") ""))
2038
             #t)))))
2039
    (description "")))
2040
2041
(define-public java-jamonapi-jamon-bootstrap
2042
  (package
2043
    (name "java-jamonapi-jamon")
2044
    (version "2.81")
2045
    (source (origin
2046
              (method url-fetch)
2047
              (uri (string-append "https://github.com/stevensouza/jamonapi/archive/v"
2048
                                  (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
2049
                                  ".tar.gz"))
2050
              (file-name (string-append name "-" version ".tar.gz"))
2051
              (sha256
2052
               (base32
2053
                "0kh0p1h546k6myd268jlr681bx15q6ip15an56rmqdw4q87xk23v"))
2054
              (patches
2055
                (search-patches "java-jamonapi-jamon-update-dependencies.patch"))))
2056
    (build-system ant-build-system)
2057
    (arguments
2058
     `(#:jar-name "java-jamonapi-jamon.jar"
2059
       #:source-dir "jamon/src/main/java"
2060
       #:test-dir "jamon/src/test"
2061
       #:test-exclude
2062
       (list
2063
         "**/Abstract*.java"
2064
         ;; Fail to parse hazelcast.xml
2065
         "**/DistributedJamonHazelcastTest.java"
2066
         "**/JamonDataPersisterFactoryTest.java"
2067
         ;; javax.management.InstanceAlreadyExistsException
2068
         "**/JmxUtilsTest.java"
2069
         ;; Missing hsqldb as a dependency
2070
         "**/MonProxyTest.java")
2071
       #:phases
2072
       (modify-phases %standard-phases
2073
         (add-before 'build 'remove-cyclic-dependency
2074
           (lambda _
2075
             ;; Classes in this directory depend on spring-framework-context,
2076
             ;; which depends on spring-framework-aop which depends on jamonapi.
2077
             (delete-file-recursively "jamon/src/main/java/com/jamonapi/aop")
2078
             (delete-file-recursively "jamon/src/test/java/com/jamonapi/aop")
2079
             #t)))))
2080
    (inputs
2081
     `(("java-aspectj-rt" ,java-aspectj-rt)
2082
       ("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
2083
       ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
2084
       ("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
2085
       ("java-hazelcast-bootstrap" ,java-hazelcast-bootstrap)
2086
       ("java-tomcat" ,java-tomcat) ; for catalina and servletapi
2087
       ("java-log4j-api" ,java-log4j-api)
2088
       ("java-log4j-1.2" ,java-log4j-1.2)))
2089
    (native-inputs
2090
     `(("java-asm" ,java-asm)
2091
       ("java-assertj" ,java-assertj)
2092
       ("java-cglib" ,java-cglib)
2093
       ("java-hamcrest-core" ,java-hamcrest-core)
2094
       ("java-jboss-interceptors-api-spec" ,java-jboss-interceptors-api-spec)
2095
       ("java-junit" ,java-junit)
2096
       ("java-mockito-1" ,java-mockito-1)
2097
       ("java-objenesis" ,java-objenesis)))
2098
    (home-page "")
2099
    (synopsis "")
2100
    (description "")
2101
    ;; A link to the license is present in pom.xml
2102
    (license license:bsd-3)))
2103
2104
(define license:epl2.0 license:epl1.0)
2105
(define-public java-javax-interceptor
2106
  (package
2107
    (name "java-javax-interceptor")
2108
    (version "1.2.2")
2109
    (source (origin
2110
              (method url-fetch)
2111
              (uri (string-append "https://github.com/javaee/javax.interceptor/"
2112
                                  "archive/" version ".tar.gz"))
2113
              (sha256
2114
               (base32
2115
                "1c93q8x7rxml747vzmw13s1gkjhwi0xs8ra27254cvyl0q8fh1kv"))))
2116
    (build-system ant-build-system)
2117
    (arguments
2118
     `(#:jar-name "javax-interceptor.jar"
2119
       #:tests? #f; no tests
2120
       #:source-dir "src/main/java"
2121
       #:phases
2122
       (modify-phases %standard-phases
2123
         (add-before 'build 'copy-resources
2124
           (lambda _
2125
             (copy-recursively "src/main/resources" "build/classes")
2126
             #t)))))
2127
    (home-page "https://github.com/eclipse-ee4j/interceptor-api")
2128
    (synopsis "")
2129
    (description "")
2130
    ;; Either EPL2.0 or GPL2.0 with classpath exception
2131
    (license (list license:epl2.0 license:gpl2+))))
2132
2133
;; JTA or JSR907
2134
;; Same as java-jboss-transaction-api-spec?
2135
(define-public java-javax-transaction
2136
  (package
2137
    (name "java-javax-transaction")
2138
    (version "1.3")
2139
    (source (origin
2140
              (method url-fetch)
2141
              (uri (string-append "https://github.com/javaee/javax.transaction/"
2142
                                  "archive/javax.transaction-api-" version
2143
                                  ".tar.gz"))
2144
              (sha256
2145
               (base32
2146
                "13c04282r59pyp784ppnihdi4krksmg8w4ksy2crgw9c9a7wfdh5"))))
2147
    (build-system ant-build-system)
2148
    (arguments
2149
     `(#:jar-name "javax-transaction.jar"
2150
       #:tests? #f; no tests
2151
       #:source-dir "src/main/java"
2152
       #:phases
2153
       (modify-phases %standard-phases
2154
         (add-before 'build 'copy-resources
2155
           (lambda _
2156
             (copy-recursively "src/main/resources" "build/classes")
2157
             #t)))))
2158
    (inputs
2159
     `(("java-cdi-api" ,java-cdi-api)
2160
       ("java-javax-interceptor" ,java-javax-interceptor)))
2161
    (home-page "https://github.com/eclipse-ee4j/jta-api")
2162
    (synopsis "")
2163
    (description "")
2164
    (license (list license:cddl1.1))))
2165
2166
;; jax-rpc
2167
(define-public java-javax-xml-rpc
2168
  (package
2169
    (name "java-javax-xml-rpc")
2170
    (version "1.1.2")
2171
    (source (origin
2172
              (method url-fetch)
2173
              (uri (string-append "https://github.com/javaee/javax.xml.rpc/"
2174
                                  "archive/javax.xml.rpc-api-" version
2175
                                  ".tar.gz"))
2176
              (sha256
2177
               (base32
2178
                "1x4ldqr25s8knadmvwd33nbhyigqi471d62mz09vciy8j5waqys9"))))
2179
    (build-system ant-build-system)
2180
    (arguments
2181
     `(#:jar-name "javax-xml-rpc.jar"
2182
       #:tests? #f; no tests
2183
       #:source-dir "src/main/java"
2184
       #:phases
2185
       (modify-phases %standard-phases
2186
         (add-before 'build 'copy-resources
2187
           (lambda _
2188
             (copy-recursively "src/main/resources" "build/classes")
2189
             #t)))))
2190
    (inputs
2191
     `(("java-javaee-servletapi" ,java-javaee-servletapi)))
2192
    (home-page "https://github.com/eclipse-ee4j/jax-rpc-api")
2193
    (synopsis "")
2194
    (description "")
2195
    (license (list license:cddl1.1))))
2196
2197
;; also called jaxb-api
2198
(define-public java-javax-xml-bind
2199
  (package
2200
    (name "java-javax-xml-bind")
2201
    (version "2.4.0")
2202
    (source (origin
2203
              (method url-fetch)
2204
              (uri (string-append "https://github.com/javaee/jaxb-spec/archive/"
2205
                                  version ".tar.gz"))
2206
              (sha256
2207
               (base32
2208
                "0qd352ph8zfqiy7lzp6cczznz6j6vpd2877kqp72wi4w3zz88ydw"))))
2209
    (build-system ant-build-system)
2210
    (arguments
2211
     `(#:jar-name "javax-xml-bind.jar"
2212
       #:tests? #f; no tests
2213
       #:source-dir "jaxb-api/src/main/java"
2214
       #:phases
2215
       (modify-phases %standard-phases
2216
         (add-before 'build 'fix-java8
2217
           (lambda _
2218
             ;; This file is for java9+
2219
             (for-each delete-file (find-files "." "module-info.java"))
2220
             #t))
2221
         (add-before 'build 'copy-resources
2222
           (lambda _
2223
             (copy-recursively "jaxb-api/src/main/resources" "build/classes")
2224
             #t)))))
2225
    (home-page "https://github.com/javaee/jaxb-spec")
2226
    (synopsis "")
2227
    (description "")
2228
    (license license:cddl1.1)))
2229
2230
(define-public java-jaxb-txw-runtime
2231
  (package
2232
    (name "java-jaxb-txw-runtime")
2233
    (version "2.3.1")
2234
    (source (origin
2235
              (method url-fetch)
2236
              (uri (string-append "https://github.com/javaee/jaxb-v2/archive/"
2237
                                  version ".tar.gz"))
2238
              (sha256
2239
               (base32
2240
                "10jp3fcdib34i31ykd8xjp6i6lf7rylj0w0n2xkqs1rzirs1sjr2"))))
2241
    (build-system ant-build-system)
2242
    (arguments
2243
     `(#:jar-name "jaxb-txw-runtime.jar"
2244
       #:source-dir "jaxb-ri/txw/runtime/src/main/java"
2245
       #:test-dir "jaxb-ri/txw/runtime/src/test"
2246
       #:tests? #f; no runnable test
2247
       #:phases
2248
       (modify-phases %standard-phases
2249
         (add-before 'build 'fix-java8
2250
           (lambda _
2251
             ;; This file is for java9+
2252
             (for-each delete-file (find-files "." "module-info.java"))
2253
             #t)))))
2254
    (home-page "https://github.com/javaee/jaxb-spec")
2255
    (synopsis "")
2256
    (description "")
2257
    (license license:cddl1.1)))
2258
2259
(define-public java-jaxb-runtime
2260
  (package
2261
    (inherit java-jaxb-txw-runtime)
2262
    (name "java-jaxb-runtime")
2263
    (arguments
2264
     `(#:jar-name "jaxb-runtime.jar"
2265
       #:tests? #f; no tests
2266
       #:source-dir "jaxb-ri/runtime/impl/src/main/java"
2267
       #:phases
2268
       (modify-phases %standard-phases
2269
         (add-before 'build 'fix-java8
2270
           (lambda _
2271
             ;; This file is for java9+
2272
             (for-each delete-file (find-files "." "module-info.java"))
2273
             #t))
2274
         (add-before 'build 'copy-resources
2275
           (lambda _
2276
             (copy-recursively "jaxb-ri/jxc/src/main/resources" "build/classes")
2277
             #t)))))
2278
    (inputs
2279
     `(("java-jaxb-txw-runtime" ,java-jaxb-txw-runtime)
2280
       ("java-javax-xml-bind" ,java-javax-xml-bind)))
2281
    (synopsis "")
2282
    (description "")))
2283
2284
(define-public java-jaxb-xjc
2285
  (package
2286
    (name "java-jaxb-xjc")
2287
    (version "2.3.1")
2288
    (source (origin
2289
              (method url-fetch)
2290
              (uri (string-append "https://github.com/javaee/jaxb-v2/archive/"
2291
                                  version ".tar.gz"))
2292
              (sha256
2293
               (base32
2294
                "10jp3fcdib34i31ykd8xjp6i6lf7rylj0w0n2xkqs1rzirs1sjr2"))))
2295
    (build-system ant-build-system)
2296
    (arguments
2297
     `(#:jar-name "jaxb-ri.jar"
2298
       #:tests? #f; no tests
2299
       #:source-dir "jaxb-ri/xjc/src/main/java"
2300
       #:phases
2301
       (modify-phases %standard-phases
2302
         (add-before 'build 'fix-java8
2303
           (lambda _
2304
             ;; This file is for java9+
2305
             (for-each delete-file (find-files "." "module-info.java"))
2306
             #t))
2307
         (add-before 'build 'copy-resources
2308
           (lambda _
2309
             (copy-recursively "jaxb-ri/jxc/src/main/resources" "build/classes")
2310
             #t)))))
2311
    (home-page "https://github.com/javaee/jaxb-spec")
2312
    (synopsis "")
2313
    (description "")
2314
    (license license:cddl1.1)))
2315
2316
;; also called jpa-api
2317
(define-public java-javax-persistence
2318
  (package
2319
    (name "java-javax-persistence")
2320
    (version "2.2")
2321
    (source (origin
2322
              (method url-fetch)
2323
              (uri (string-append "https://github.com/javaee/jpa-spec/archive/"
2324
                                  "javax.persistence-api-" version ".tar.gz"))
2325
              (sha256
2326
               (base32
2327
                "14kn70i1g0ij14gm6qbhgmfqprp6qvw3nkw8yd6a09806c70x576"))))
2328
    (build-system ant-build-system)
2329
    (arguments
2330
     `(#:jar-name "javax-persistence.jar"
2331
       #:tests? #f; no tests
2332
       #:source-dir "javax.persistence-api/src/main/java"
2333
       #:phases
2334
       (modify-phases %standard-phases
2335
         (add-before 'build 'copy-resources
2336
           (lambda _
2337
             (copy-recursively "javax.persistence-api/src/main/resources"
2338
                               "build/classes")
2339
             #t)))))
2340
    (home-page "https://github.com/eclipse-ee4j/jpa-api")
2341
    (synopsis "")
2342
    (description "")
2343
    (license (list license:epl1.0 license:edl1.0))))
2344
2345
(define-public java-javax-ejb
2346
  (package
2347
    (name "java-javax-ejb")
2348
    (version "3.2.2")
2349
    (source (origin
2350
              (method url-fetch)
2351
              (uri (string-append "https://github.com/javaee/javax.ejb/archive/"
2352
                                  version ".tar.gz"))
2353
              (sha256
2354
               (base32
2355
                "15ipffv3dkbg6psa5knp4bq1bkp0qy21mzsgs94k6xw714igsij5"))))
2356
    (build-system ant-build-system)
2357
    (arguments
2358
     `(#:jar-name "javax-ejb.jar"
2359
       #:tests? #f; no tests
2360
       #:source-dir "src/main/java"
2361
       #:phases
2362
       (modify-phases %standard-phases
2363
         (add-before 'build 'copy-resources
2364
           (lambda _
2365
             (copy-recursively "src/main/resources" "build/classes")
2366
             #t)))))
2367
    (inputs
2368
     `(("java-javax-transaction" ,java-javax-transaction)
2369
       ("java-javax-xml-rpc" ,java-javax-xml-rpc)))
2370
    (home-page "https://github.com/eclipse-ee4j/ejb-api")
2371
    (synopsis "")
2372
    (description "")
2373
    ;; Either EPL2.0 or GPL2.0 with classpath exception
2374
    (license (list license:epl2.0 license:gpl2+))))
2375
2376
;; JSR380 jsr380
2377
(define-public java-javax-validation-1
2378
  (package
2379
    (name "java-javax-validation-1")
2380
    (version "1.0.0.GA")
2381
    (source (origin
2382
              (method url-fetch)
2383
              (uri (string-append "https://github.com/beanvalidation/"
2384
                                  "beanvalidation-api/archive/" version
2385
                                  ".tar.gz"))
2386
              (sha256
2387
               (base32
2388
                "03i6p5snm6chpsj62lrvnwq9qr120iv9a6bhkkbqr1j48d2bp8iv"))))
2389
    (build-system ant-build-system)
2390
    (arguments
2391
     `(#:jar-name "javax-validation.jar"
2392
       #:tests? #f; require an implementation like Hibernate Validator
2393
       #:source-dir "src/main/java"))
2394
    (native-inputs
2395
     `(("java-hamcrest-core" ,java-hamcrest-core)
2396
       ("java-testng" ,java-testng)))
2397
    (home-page "")
2398
    (synopsis "")
2399
    (description "")
2400
    (license license:asl2.0)))
2401
2402
;; JSR380 jsr380
2403
(define-public java-javax-validation
2404
  (package
2405
    (inherit java-javax-validation-1)
2406
    (name "java-javax-validation")
2407
    (version "2.0.1")
2408
    (source (origin
2409
              (method url-fetch)
2410
              (uri (string-append "https://github.com/beanvalidation/"
2411
                                  "beanvalidation-api/archive/" version
2412
                                  ".Final.tar.gz"))
2413
              (sha256
2414
               (base32
2415
                "0mmzwrgwfvi68jfjh8ijy8za3wmp5rmwsplyghwyf9lwb9p5x5qz"))))
2416
    (arguments
2417
     `(#:phases
2418
       (modify-phases %standard-phases
2419
         (add-before 'build 'copy-resources
2420
           (lambda _
2421
             (copy-recursively "src/main/resources" "build/classes")
2422
             #t)))
2423
       ,@(package-arguments java-javax-validation-1)))))
2424
2425
(define-public java-fasterxml-classmate
2426
  (package
2427
    (name "java-fasterxml-classmate")
2428
    (version "1.4.0")
2429
    (source (origin
2430
              (method url-fetch)
2431
              (uri (string-append "https://github.com/FasterXML/java-classmate/"
2432
                                  "archive/classmate-" version ".tar.gz"))
2433
              (sha256
2434
               (base32
2435
                "143gsrgsf7dzqbmd2pw4ky2cd1lhlgmh7daygda03vka73ns6qr3"))))
2436
    (build-system ant-build-system)
2437
    (arguments
2438
     `(#:jar-name "fasterxml-classmate.jar"
2439
       #:source-dir "src/main/java"
2440
       #:test-exclude
2441
       (list
2442
         "**/Abstract*.java"
2443
         ;; Base class with no tests
2444
         "**/BaseTest.java")
2445
       #:phases
2446
       (modify-phases %standard-phases
2447
         (add-before 'build 'copy-resources
2448
           (lambda _
2449
             (copy-recursively "engine/src/main/resources" "build/classes")
2450
             #t)))))
2451
    (native-inputs
2452
     `(("java-hamcrest-core" ,java-hamcrest-core)
2453
       ("java-junit" ,java-junit)))
2454
    (home-page "https://fasterxml.com")
2455
    (synopsis "")
2456
    (description "")
2457
    (license license:asl2.0)))
2458
2459
(define-public java-jboss-modules
2460
  (package
2461
    (name "java-jboss-modules")
2462
    (version "1.8.6")
2463
    (source (origin
2464
              (method url-fetch)
2465
              (uri (string-append "https://github.com/jboss-modules/"
2466
                                  "jboss-modules/archive/" version ".Final.tar.gz"))
2467
              (file-name (string-append name "-" version ".tar.gz"))
2468
              (sha256
2469
               (base32
2470
                "0cm8z4kc1lq4jg3866dzhjaaz5kglsn9bymp4ra7jimyij84xxv2"))))
2471
    (build-system ant-build-system)
2472
    (arguments
2473
     `(#:jar-name "jboss-modules.jar"
2474
       #:source-dir "src/main/java"
2475
       #:tests? #f; require jboss.shrinkwrap
2476
       #:phases
2477
       (modify-phases %standard-phases
2478
         (add-before 'build 'copy-resources
2479
           (lambda _
2480
             (copy-recursively "src/main/resources" "build/classes")
2481
             #t)))))
2482
    (native-inputs
2483
     `(("java-junit" ,java-junit)))
2484
    (home-page "")
2485
    (synopsis "")
2486
    (description "")
2487
    (license license:asl2.0)))
2488
2489
(define-public java-wildfly-common
2490
  (package
2491
    (name "java-wildfly-common")
2492
    (version "1.4.0")
2493
    (source (origin
2494
              (method url-fetch)
2495
              (uri (string-append "https://github.com/wildfly/wildfly-common/"
2496
                                  "archive/" version ".Final.tar.gz"))
2497
              (file-name (string-append name "-" version ".tar.gz"))
2498
              (sha256
2499
               (base32
2500
                "1qgp5b77wj0g3c8wzx2k8qslzk4ran1kbk5scjzj955ljpwvygah"))))
2501
    (build-system ant-build-system)
2502
    (arguments
2503
     `(#:jar-name "wildfly-common.jar"
2504
       ;; Most tests fail because of Invalid bundle interface org.wildfly.common._private.CommonMessages (implementation not found)
2505
       #:tests? #f
2506
       #:source-dir "src/main/java"))
2507
    (inputs
2508
     `(("java-jboss-logging" ,java-jboss-logging)
2509
       ("java-jboss-logging-annotations" ,java-jboss-logging-annotations)))
2510
    (native-inputs
2511
     `(("java-hamcrest-core" ,java-hamcrest-core)
2512
       ("java-junit" ,java-junit)))
2513
    (home-page "")
2514
    (synopsis "")
2515
    (description "")
2516
    (license license:lgpl2.1)))
2517
2518
(define java-jboss-logmanager-bootstrap
2519
  (package
2520
    (name "java-jboss-logmanager")
2521
    (version "2.1.4")
2522
    (source (origin
2523
              (method url-fetch)
2524
              (uri (string-append "https://github.com/jboss-logging/"
2525
                                  "jboss-logmanager/archive/" version ".Final.tar.gz"))
2526
              (file-name (string-append name "-" version ".tar.gz"))
2527
              (sha256
2528
               (base32
2529
                "09qj82wa612bfmwdpgpskg7qvi3n7q6v1arbhs7zbbrzlfgb7wnx"))))
2530
    (build-system ant-build-system)
2531
    (arguments
2532
     `(#:jar-name "jboss-logmanager.jar"
2533
       #:source-dir "src/main/java"
2534
       #:tests? #f; no tests
2535
       #:phases
2536
       (modify-phases %standard-phases
2537
         (add-before 'build 'stub-wildfly
2538
           (lambda _
2539
             ;; Wildfly is a cyclic dependency. By stubbing it out, we break
2540
             ;; two cycles at once!
2541
             (substitute* "src/main/java/org/jboss/logmanager/ExtLogRecord.java"
2542
               (("import org.wildfly.common.*") "")
2543
               (("HostName.getQualifiedHostName\\(\\)") "\"example.com\"")
2544
               (("Process.getProcessId\\(\\)") "1515")
2545
               (("Process.getProcessName\\(\\)") "\"java\""))
2546
             (substitute* "src/main/java/org/jboss/logmanager/handlers/SyslogHandler.java"
2547
               (("import org.wildfly.common.*") "")
2548
               (("Process.getProcessName\\(\\)") "\"java\"")
2549
               (("Process.getProcessId\\(\\)") "1515"))
2550
             #t))
2551
         (add-before 'build 'copy-resources
2552
           (lambda _
2553
             (copy-recursively "src/main/resources" "build/classes")
2554
             #t)))))
2555
    (inputs
2556
     `(("java-jboss-modules" ,java-jboss-modules)
2557
       ("java-jsonp-api" ,java-jsonp-api)))
2558
       ;("java-wildfly-common" ,java-wildfly-common)))
2559
    (home-page "")
2560
    (synopsis "")
2561
    (description "")
2562
    (license license:asl2.0)))
2563
2564
(define-public java-jboss-logmanager
2565
  (package
2566
    (inherit java-jboss-logmanager-bootstrap)
2567
    (arguments
2568
     `(#:jar-name "jboss-logmanager.jar"
2569
       #:source-dir "src/main/java"
2570
       #:tests? #f; no tests
2571
       #:phases
2572
       (modify-phases %standard-phases
2573
         (add-before 'build 'copy-resources
2574
           (lambda _
2575
             (copy-recursively "src/main/resources" "build/classes")
2576
             #t)))))
2577
    (inputs
2578
     `(("java-jboss-modules" ,java-jboss-modules)
2579
       ("java-jsonp-api" ,java-jsonp-api)
2580
       ("java-wildfly-common" ,java-wildfly-common)))))
2581
2582
(define-public java-jboss-logging
2583
  (package
2584
    (name "java-jboss-logging")
2585
    (version "3.3.2")
2586
    (source (origin
2587
              (method url-fetch)
2588
              (uri (string-append "https://github.com/jboss-logging/"
2589
                                  "jboss-logging/archive/" version ".Final.tar.gz"))
2590
              (file-name (string-append name "-" version ".tar.gz"))
2591
              (sha256
2592
               (base32
2593
                "1kcibwahdja95zdm8yh2zlqlq6xj42pddjby1845jam2xg7q9pqh"))))
2594
    (build-system ant-build-system)
2595
    (arguments
2596
     `(#:jar-name "jboss-logging.jar"
2597
       #:source-dir "src/main/java"
2598
       #:tests? #f; no tests
2599
       #:phases
2600
       (modify-phases %standard-phases
2601
         (add-before 'build 'fix-conversion-error
2602
           (lambda _
2603
             ;; Prevent an error that "cannot convert Map<String, String> to
2604
             ;; Map<String, Object>.
2605
             (substitute* "src/main/java/org/jboss/logging/Slf4jLoggerProvider.java"
2606
               (("import java.util.Map")
2607
                "import java.util.HashMap;
2608
import java.util.Map")
2609
               (("Map<String, Object> map = MDC.getCopyOfContextMap\\(\\);")
2610
                "Map<String, String> map_mdc = MDC.getCopyOfContextMap();
2611
Map<String, Object> map2 = new HashMap<String, Object>();
2612
for (Map.Entry<String, String> entry : map_mdc.entrySet()) {
2613
  map2.put(entry.getKey(), entry.getValue());
2614
}
2615
if (map_mdc == null) map2 = null;
2616
final Map<String, Object> map = map2;"))
2617
             #t))
2618
         (add-before 'build 'copy-resources
2619
           (lambda _
2620
             (copy-recursively "src/main/resources" "build/classes")
2621
             #t)))))
2622
    (inputs
2623
     `(("java-jboss-logmanager-bootstrap" ,java-jboss-logmanager-bootstrap)
2624
       ("java-log4j-1.2-api" ,java-log4j-1.2-api)
2625
       ("java-log4j-api" ,java-log4j-api)
2626
       ("java-slf4j-api" ,java-slf4j-api)))
2627
    (home-page "")
2628
    (synopsis "")
2629
    (description "")
2630
    (license license:asl2.0)))
2631
2632
(define-public java-jboss-logging-annotations
2633
  (package
2634
    (name "java-jboss-logging-annotations")
2635
    (version "2.1.0")
2636
    (source (origin
2637
              (method url-fetch)
2638
              (uri (string-append "https://github.com/jboss-logging/"
2639
                                  "jboss-logging-tools/archive/" version ".Final.tar.gz"))
2640
              (file-name (string-append name "-" version ".tar.gz"))
2641
              (sha256
2642
               (base32
2643
                "1azi76q31qhmyq3v9cx0aq1gvddymj080bpc3lvacg45kh7vx9zm"))))
2644
    (build-system ant-build-system)
2645
    (arguments
2646
     `(#:jar-name "jboss-logging-annotations.jar"
2647
       #:source-dir "annotations/src/main/java"
2648
       #:tests? #f; no tests
2649
       #:phases
2650
       (modify-phases %standard-phases
2651
         (add-before 'build 'copy-resources
2652
           (lambda _
2653
             (copy-recursively "annotations/src/main/resources" "build/classes")
2654
             #t)))))
2655
    (inputs
2656
     `(("java-jboss-logging" ,java-jboss-logging)))
2657
    (home-page "")
2658
    (synopsis "")
2659
    (description "")
2660
    (license license:lgpl2.1+)))
2661
2662
(define-public java-jboss-marshalling
2663
  (package
2664
    (name "java-jboss-marshalling")
2665
    (version "2.0.6")
2666
    (source (origin
2667
              (method git-fetch)
2668
              (uri (git-reference
2669
                     (url "https://github.com/jboss-remoting/jboss-marshalling")
2670
                     (commit (string-append version ".Final"))))
2671
              (file-name (git-file-name name version))
2672
              (sha256
2673
               (base32
2674
                "1afcfk0wgcggyzc4c47kfmxskbpkqvi65vr0g3gl6rikqm010knc"))))
2675
    (build-system ant-build-system)
2676
    (arguments
2677
     `(#:jar-name "jboss-marshalling.jar"
2678
       #:source-dir "api/src/main/java"
2679
       #:test-dir "api/src/test"))
2680
    (inputs
2681
     `(("java-jboss-modules" ,java-jboss-modules)))
2682
    (native-inputs
2683
     `(("java-testng" ,java-testng)))
2684
    (home-page "")
2685
    (synopsis "")
2686
    (description "")
2687
    (license license:lgpl2.1+)))
2688
2689
(define-public java-hibernate-validator-engine
2690
  (package
2691
    (name "java-hibernate-validator-engine")
2692
    ;(version "6.0.13")
2693
    (version "4.3.3")
2694
    (source (origin
2695
              (method url-fetch)
2696
              (uri (string-append "https://github.com/hibernate/"
2697
                                  "hibernate-validator/archive/" version
2698
                                  ".Final.tar.gz"))
2699
              (sha256
2700
               (base32
2701
                "1ifyqgvlzv9fxgw9ssd6slpv0ky9cgxc1xg2rwqiw1nmwgndjnkb"))))
2702
                ;"107220ydll2fgvqzmzrby7b65vi4hsvrnmbb6idrxfmckm05grn4"))))
2703
    (build-system ant-build-system)
2704
    (arguments
2705
     `(#:jar-name "hibernate-validator-engine.jar"
2706
       #:source-dir "engine/src/main/java"
2707
       #:test-dir "engine/src/test"
2708
       #:tests? #f; Require more parts of hibernate?
2709
       #:phases
2710
       (modify-phases %standard-phases
2711
         (add-before 'build 'generate-sources
2712
           (lambda _
2713
             (invoke "xjc" "-d" "engine/src/main/java"
2714
                     "-p" "org.hibernate.validator.internal.xml" "-extension"
2715
                     "engine/src/main/xsd/validation-configuration-1.0.xsd")
2716
             (invoke "xjc" "-d" "engine/src/main/java"
2717
                     "-p" "org.hibernate.validator.internal.xml" "-extension"
2718
                     "-b" "engine/src/main/xjb/binding-customization.xjb"
2719
                     "engine/src/main/xsd/validation-mapping-1.0.xsd")
2720
             #t))
2721
         (add-before 'build 'fix-getters
2722
           (lambda _
2723
             (substitute* (find-files "." ".*.java")
2724
               (("getIgnoreAnnotations") "isIgnoreAnnotations")
2725
               (("getIncludeExistingValidators") "isIncludeExistingValidators"))
2726
             #t))
2727
         (add-before 'build 'copy-resources
2728
           (lambda _
2729
             (copy-recursively "engine/src/main/resources" "build/classes")
2730
             #t)))))
2731
    (inputs
2732
     `(("java-fasterxml-classmate" ,java-fasterxml-classmate)
2733
       ("java-javax-persistence" ,java-javax-persistence)
2734
       ("java-javax-validation-1" ,java-javax-validation-1)
2735
       ("java-jboss-logging" ,java-jboss-logging)
2736
       ("java-jboss-logging-annotations" ,java-jboss-logging-annotations)
2737
       ("java-joda-time" ,java-joda-time)
2738
       ("java-jsoup" ,java-jsoup)
2739
       ;; For javax-el (el-api)
2740
       ("java-tomcat" ,java-tomcat)))
2741
    (native-inputs
2742
     `(("java-easymock" ,java-easymock)
2743
       ("java-testng" ,java-testng)))
2744
    (home-page "https://hibernate.org/validator/")
2745
    (synopsis "")
2746
    (description "")
2747
    (license license:asl2.0)))
2748
2749
;; javax.enterprise.concurrency
2750
(define-public java-concurrency-api
2751
  (package
2752
    (name "java-concurrency-api")
2753
    (version "1.1")
2754
    (source (origin
2755
              (method url-fetch)
2756
              (uri (string-append "https://github.com/javaee/concurrency-ee-spec/"
2757
                                  "archive/javax.enterprise.concurrent-api-"
2758
                                  version ".tar.gz"))
2759
              (sha256
2760
               (base32
2761
                "038rc3bvpq4y96g0bb7b0ac6ip8m4rr931r1mlfmcnbav1n8b7wp"))))
2762
    (build-system ant-build-system)
2763
    (arguments
2764
     `(#:jar-name "concurrency-api.jar"
2765
       #:source-dir "api/src/main/java"
2766
       #:test-dir "api/src/test"))
2767
    (native-inputs
2768
     `(("java-hamcrest-core" ,java-hamcrest-core)
2769
       ("java-junit" ,java-junit)))
2770
    (home-page "https://github.com/eclipse-ee4j/concurrency-api")
2771
    (synopsis "")
2772
    (description "")
2773
    (license license:cddl1.1)))
2774
2775
(define-public java-spring-framework-core
2776
  (package
2777
    (name "java-spring-framework-core")
2778
    (version "4.3.19")
2779
    (source (origin
2780
              (method url-fetch)
2781
              (uri (string-append "https://github.com/spring-projects/"
2782
                                  "spring-framework/archive/v" version
2783
                                  ".RELEASE.tar.gz"))
2784
              (sha256
2785
               (base32
2786
                "1796ch4ahhx8jq9v3v16dr0xcdx9fqf8waf75cjh52fxvi6ipnqj"))
2787
              (patches (search-patches "java-spring-framework-remove-non-free.patch"))))
2788
    (arguments
2789
     `(#:jar-name "java-spring-framework-core.jar"
2790
       #:source-dir "src/main/java"
2791
       #:test-dir "src/test"
2792
       #:test-include (list "**/*Tests.java")
2793
       #:test-exclude
2794
       (list
2795
         "**/Abstract*.java"
2796
         ;; Test failures
2797
         "**/LocalVariableTableParameterNameDiscovererTests.java"
2798
         "**/StandardReflectionParameterNameDiscoverTests.java"
2799
         "**/SpringFactoriesLoaderTests.java"
2800
         "**/PropertySourceTests.java"
2801
         "**/StaxEventXMLReaderTests.java"
2802
         "**/StaxStreamHandlerTests.java"
2803
         ;; Unable to set MockitoNamingPolicy on cglib generator which creates FastClasses
2804
         "**/util/StreamUtilsTests.java")
2805
       #:phases
2806
       (modify-phases %standard-phases
2807
         (add-before 'configure 'chdir
2808
           (lambda _
2809
             ;; Needed because tests look for data in src/... directly.
2810
             (chdir "spring-core")
2811
             #t))
2812
         (add-before 'configure 'unbundle-asm
2813
           (lambda _
2814
             (with-directory-excursion "src/main/java/org/springframework/asm"
2815
               (for-each delete-file
2816
                         (filter (lambda (file) (not (string=? file "./SpringAsmInfo.java")))
2817
                           (find-files "." ".*.java")))
2818
               (substitute* "SpringAsmInfo.java"
2819
                 (("package org.springframework.asm;")
2820
                  "package org.springframework.asm;
2821
2822
import org.objectweb.asm.Opcodes;")))
2823
             #t))
2824
         (add-before 'configure 'rename-dep
2825
           (lambda _
2826
             (substitute* "src/main/java/org/springframework/objenesis/SpringObjenesis.java"
2827
               (("org.springframework.objenesis\\.") "org.objenesis.")
2828
               (("import org.springframework.util.ConcurrentReferenceHashMap;")
2829
                "import org.springframework.util.ConcurrentReferenceHashMap;
2830
import org.objenesis.Objenesis;
2831
import org.objenesis.ObjenesisException;"))
2832
             (substitute* (find-files "." ".*.java")
2833
               (("org.springframework.asm\\.") "org.objectweb.asm.")
2834
               (("org.objectweb.asm.SpringAsmInfo")
2835
                "org.springframework.asm.SpringAsmInfo"))
2836
             #t))
2837
         (add-before 'configure 'add-import
2838
           (lambda _
2839
             (substitute* "src/main/java/org/springframework/cglib/core/SpringNamingPolicy.java"
2840
               (("public class")
2841
                "import net.sf.cglib.core.DefaultNamingPolicy;\npublic class"))
2842
             #t))
2843
         (add-before 'check 'remove-log4j-1-dep
2844
           (lambda _
2845
             ;; These tests require log4j-1 (log4j-1.2-api doesn't work)
2846
             (delete-file "src/test/java/org/springframework/util/MockLog4jAppender.java")
2847
             (delete-file "src/test/java/org/springframework/util/Log4jConfigurerTests.java")
2848
             #t))
2849
         (add-before 'check 'copy-test-resources
2850
           (lambda* (#:key inputs #:allow-other-keys)
2851
             (let ((dir (string-append (getcwd) "/build/test-classes/")))
2852
               (with-directory-excursion "src/test/resources"
2853
                 (for-each (lambda (file)
2854
                             (mkdir-p (dirname (string-append dir file)))
2855
                             (copy-file file (string-append dir file)))
2856
                   (find-files "." ".*"))))
2857
             #t)))))
2858
    (inputs
2859
     `(("java-asm" ,java-asm)
2860
       ("java-aspectj-weaver" ,java-aspectj-weaver)
2861
       ("java-cglib" ,java-cglib)
2862
       ("java-commons-codec" ,java-commons-codec)
2863
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2864
       ("java-jopt-simple" ,java-jopt-simple)
2865
       ("java-log4j-1.2-api" ,java-log4j-1.2-api)
2866
       ("java-objenesis" ,java-objenesis)))
2867
    (native-inputs
2868
     `(("java-junit" ,java-junit)
2869
       ("java-hamcrest-all" ,java-hamcrest-all)
2870
       ("java-jboss-annotations-api-spec" ,java-jboss-annotations-api-spec)
2871
       ("java-xmlunit-legacy" ,java-xmlunit-legacy)
2872
       ("java-xmlunit" ,java-xmlunit)
2873
       ("java-mockito-1" ,java-mockito-1)))
2874
    (build-system ant-build-system)
2875
    (home-page "https://projects.spring.io/spring-framework/")
2876
    (synopsis "")
2877
    (description "")
2878
    (license license:asl2.0)))
2879
2880
(define-public java-spring-framework-beans
2881
  (package
2882
    (inherit java-spring-framework-core)
2883
    (name "java-spring-framework-beans")
2884
    (arguments
2885
     `(#:jar-name "java-spring-framework-beans.jar"
2886
       #:source-dir "src/main/java"
2887
       #:test-dir "src/test"
2888
       #:phases
2889
       (modify-phases %standard-phases
2890
         (add-before 'configure 'chdir
2891
           (lambda _
2892
             ;; Needed because tests look for data in src/... directly.
2893
             (chdir "spring-beans")
2894
             #t))
2895
         (add-before 'build 'copy-resources
2896
           (lambda _
2897
             (copy-recursively "src/main/resources" "build/classes")
2898
             #t))
2899
         (add-before 'configure 'rename-dep
2900
           (lambda _
2901
             (substitute* "src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java"
2902
               (("org.springframework.cglib") "net.sf.cglib")
2903
               (("net.sf.cglib.core.SpringNamingPolicy") "org.springframework.cglib.core.SpringNamingPolicy"))
2904
             #t))
2905
         (add-before 'check 'copy-test-classes
2906
           (lambda _
2907
             (copy-file "../spring-core/src/test/java/org/springframework/tests/Assume.java"
2908
                        "src/test/java/org/springframework/tests/Assume.java")
2909
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TestGroup.java"
2910
                        "src/test/java/org/springframework/tests/TestGroup.java")
2911
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TestResourceUtils.java"
2912
                        "src/test/java/org/springframework/tests/TestResourceUtils.java")
2913
             (mkdir-p "src/test/java/org/springframework/stereotype")
2914
             (mkdir-p "src/test/java/org/springframework/util")
2915
             (copy-file "../spring-core/src/test/java/org/springframework/stereotype/Component.java"
2916
                        "src/test/java/org/springframework/stereotype/Component.java")
2917
             (copy-file "../spring-core/src/test/java/org/springframework/util/SerializationTestUtils.java"
2918
                        "src/test/java/org/springframework/util/SerializationTestUtils.java")
2919
             (substitute* "src/test/java/org/springframework/beans/factory/BeanFactoryUtilsTests.java"
2920
               (("org.springframework.cglib") "net.sf.cglib"))
2921
             #t))
2922
         (add-before 'check 'copy-test-resources
2923
           (lambda* (#:key inputs #:allow-other-keys)
2924
             (copy-recursively "src/test/resources"
2925
                               "build/test-classes")
2926
             #t)))))
2927
    (inputs
2928
     `(("java-cglib" ,java-cglib)
2929
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2930
       ("java-javax-inject" ,java-javax-inject)
2931
       ("java-snakeyaml" ,java-snakeyaml)
2932
       ("java-spring-framework-core" ,java-spring-framework-core)
2933
       ;; Note: for javax-el (el-api)
2934
       ("java-tomcat" ,java-tomcat)))
2935
    (description "")))
2936
2937
(define-public java-spring-framework-beans-groovy
2938
  (package
2939
    (inherit java-spring-framework-core)
2940
    (name "java-spring-framework-beans-groovy")
2941
    (arguments
2942
     `(#:jar-name "java-spring-framework-beans-groovy.jar"
2943
       #:source-dir "src/main/java"
2944
       #:tests? #f; no tests
2945
       #:phases
2946
       (modify-phases %standard-phases
2947
         (add-before 'configure 'chdir
2948
           (lambda _
2949
             ;; Needed because tests look for data in src/... directly.
2950
             (chdir "spring-beans-groovy")
2951
             #t))
2952
         (replace 'build
2953
           (lambda* (#:key inputs #:allow-other-keys)
2954
             (setenv "CLASSPATH" "")
2955
             (mkdir-p "build/classes")
2956
             (mkdir-p "build/jar")
2957
             (apply invoke "groovyc" "-j" "-d" "build/classes"
2958
                    "-cp" (string-join
2959
                            (append
2960
                              (find-files (assoc-ref inputs "java-commons-logging-minimal") ".*.jar$")
2961
                              (find-files (assoc-ref inputs "java-spring-framework-core") ".*.jar$")
2962
                              (find-files (assoc-ref inputs "java-spring-framework-beans") ".*.jar$"))
2963
                            ":")
2964
                    (append
2965
                      (find-files "src/main/java" ".*.java$")
2966
                      (find-files "src/main/groovy" ".*.groovy$")))
2967
             (invoke "jar" "cf" "build/jar/java-spring-framework-beans-groovy.jar" "-C" "build/classes" ".")
2968
             #t)))))
2969
    (inputs
2970
     `(("groovy" ,groovy)
2971
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2972
       ("java-spring-framework-beans" ,java-spring-framework-beans)
2973
       ("java-spring-framework-core" ,java-spring-framework-core)))
2974
    (description "")))
2975
2976
(define-public java-spring-framework-aop
2977
  (package
2978
    (inherit java-spring-framework-core)
2979
    (name "java-spring-framework-aop")
2980
    (arguments
2981
     `(#:jar-name "java-spring-framework-aop.jar"
2982
       #:source-dir "src/main/java"
2983
       #:test-dir "src/test"
2984
       #:test-exclude
2985
       (list
2986
         "**/AspectJExpressionPointcutTests.java"
2987
         "**/Abstract*.java"
2988
         ;; Required parameter names not available
2989
         "**/ArgumentBindingTests.java"
2990
         "**/ReflectiveAspectJAdvisorFactoryTests.java")
2991
       #:test-include
2992
       (list "**/*Tests.java")
2993
       #:phases
2994
       (modify-phases %standard-phases
2995
         (add-before 'configure 'chdir
2996
           (lambda _
2997
             ;; Needed because tests look for data in src/... directly.
2998
             (chdir "spring-aop")
2999
             #t))
3000
         (add-before 'build 'copy-resources
3001
           (lambda _
3002
             (copy-recursively "src/main/resources" "build/classes")
3003
             #t))
3004
         (add-before 'configure 'rename-dep
3005
           (lambda _
3006
             (substitute*
3007
               '("src/main/java/org/springframework/aop/framework/CglibAopProxy.java"
3008
                 "src/main/java/org/springframework/aop/framework/ObjenesisCglibAopProxy.java")
3009
               (("org.springframework.cglib") "net.sf.cglib")
3010
               (("net.sf.cglib.core.SpringNamingPolicy") "org.springframework.cglib.core.SpringNamingPolicy"))
3011
             (substitute* "src/main/java/org/springframework/aop/framework/ObjenesisCglibAopProxy.java"
3012
               (("org.springframework.objenesis") "org.objenesis")
3013
               (("org.objenesis.SpringObjenesis")
3014
                "org.springframework.objenesis.SpringObjenesis"))
3015
             #t))
3016
         (add-before 'check 'copy-test-classes
3017
           (lambda _
3018
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TestResourceUtils.java"
3019
                        "src/test/java/org/springframework/tests/TestResourceUtils.java")
3020
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TimeStamped.java"
3021
                        "src/test/java/org/springframework/tests/TimeStamped.java")
3022
             (copy-file "../spring-core/src/test/java/org/springframework/tests/Assume.java"
3023
                        "src/test/java/org/springframework/tests/Assume.java")
3024
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TestGroup.java"
3025
                        "src/test/java/org/springframework/tests/TestGroup.java")
3026
             (mkdir "src/test/java/org/springframework/util")
3027
             (copy-file "../spring-core/src/test/java/org/springframework/util/SerializationTestUtils.java"
3028
                        "src/test/java/org/springframework/util/SerializationTestUtils.java")
3029
             (mkdir "src/test/java/org/springframework/tests/beans")
3030
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/beans/CollectingReaderEventListener.java"
3031
                        "src/test/java/org/springframework/tests/beans/CollectingReaderEventListener.java")
3032
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/DerivedTestBean.java"
3033
                        "src/test/java/org/springframework/tests/sample/beans/DerivedTestBean.java")
3034
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/INestedTestBean.java"
3035
                        "src/test/java/org/springframework/tests/sample/beans/INestedTestBean.java")
3036
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java"
3037
                        "src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java")
3038
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/IndexedTestBean.java"
3039
                        "src/test/java/org/springframework/tests/sample/beans/IndexedTestBean.java")
3040
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/Colour.java"
3041
                        "src/test/java/org/springframework/tests/sample/beans/Colour.java")
3042
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java"
3043
                        "src/test/java/org/springframework/tests/sample/beans/TestBean.java")
3044
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/ITestBean.java"
3045
                        "src/test/java/org/springframework/tests/sample/beans/ITestBean.java")
3046
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/IOther.java"
3047
                        "src/test/java/org/springframework/tests/sample/beans/IOther.java")
3048
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/CountingTestBean.java"
3049
                        "src/test/java/org/springframework/tests/sample/beans/CountingTestBean.java")
3050
             (copy-file "../spring-beans/src/test/java/org/springframework/tests/sample/beans/SideEffectBean.java"
3051
                        "src/test/java/org/springframework/tests/sample/beans/SideEffectBean.java")
3052
             #t))
3053
         (add-before 'check 'copy-test-resources
3054
           (lambda* (#:key inputs #:allow-other-keys)
3055
             (copy-recursively "src/test/resources"
3056
                               "build/test-classes")
3057
             #t)))))
3058
    (inputs
3059
     `(("java-aspectj-rt" ,java-aspectj-rt)
3060
       ("java-aspectj-weaver" ,java-aspectj-weaver)
3061
       ("java-cglib" ,java-cglib)
3062
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3063
       ("java-commons-pool1" ,java-commons-pool1)
3064
       ("java-commons-pool" ,java-commons-pool)
3065
       ("java-jamonapi-jamon-bootstrap" ,java-jamonapi-jamon-bootstrap)
3066
       ("java-javax-inject" ,java-javax-inject)
3067
       ("java-snakeyaml" ,java-snakeyaml)
3068
       ("java-spring-framework-beans" ,java-spring-framework-beans)
3069
       ("java-spring-framework-core" ,java-spring-framework-core)
3070
       ("java-objenesis" ,java-objenesis)
3071
       ;; Note: for javax-el (el-api)
3072
       ("java-tomcat" ,java-tomcat)))
3073
    (native-inputs
3074
     `(("java-asm" ,java-asm)
3075
       ,@(package-native-inputs java-spring-framework-core)))
3076
    (description "")))
3077
3078
(define-public java-spring-framework-instrument
3079
  (package
3080
    (inherit java-spring-framework-core)
3081
    (name "java-spring-framework-instrument")
3082
    (arguments
3083
     `(#:jar-name "java-spring-framework-instrument.jar"
3084
       #:source-dir "src/main/java"
3085
       #:test-dir "src/test"
3086
       #:phases
3087
       (modify-phases %standard-phases
3088
         (add-before 'configure 'chdir
3089
           (lambda _
3090
             ;; Needed because tests look for data in src/... directly.
3091
             (chdir "spring-instrument")
3092
             #t))
3093
         (add-before 'build 'copy-resources
3094
           (lambda _
3095
             (copy-recursively "src/main/resources" "build/classes")
3096
             #t))
3097
         (add-before 'check 'copy-test-resources
3098
           (lambda* (#:key inputs #:allow-other-keys)
3099
             (copy-recursively "src/test/resources"
3100
                               "build/test-classes")
3101
             #t)))))
3102
    (inputs '())
3103
    (description "")))
3104
3105
(define-public java-spring-framework-test
3106
  (package
3107
    (inherit java-spring-framework-core)
3108
    (name "java-spring-framework-test")
3109
    (arguments
3110
     `(#:jar-name "java-spring-framework-test.jar"
3111
       #:source-dir "src/main/java"
3112
       #:test-dir "src/test"
3113
       #:phases
3114
       (modify-phases %standard-phases
3115
         (add-before 'configure 'chdir
3116
           (lambda _
3117
             ;; Needed because tests look for data in src/... directly.
3118
             (chdir "spring-test")
3119
             #t))
3120
         (add-before 'build 'copy-resources
3121
           (lambda _
3122
             (copy-recursively "src/main/resources" "build/classes")
3123
             #t))
3124
         (add-before 'check 'copy-test-resources
3125
           (lambda* (#:key inputs #:allow-other-keys)
3126
             (copy-recursively "src/test/resources"
3127
                               "build/test-classes")
3128
             #t)))))
3129
    (inputs
3130
     `(("java-spring-framework-core" ,java-spring-framework-core)
3131
       ("java-spring-framework-web" ,java-spring-framework-web)))
3132
    (description "")))
3133
3134
(define-public java-spring-framework-context
3135
  (package
3136
    (inherit java-spring-framework-core)
3137
    (name "java-spring-framework-context")
3138
    (arguments
3139
     `(#:jar-name "java-spring-framework-context.jar"
3140
       #:source-dir "src/main/java"
3141
       #:test-dir "src/test"
3142
       #:tests? #f; TODO: require spring-framework-test
3143
       #:phases
3144
       (modify-phases %standard-phases
3145
         (add-before 'configure 'chdir
3146
           (lambda _
3147
             ;; Needed because tests look for data in src/... directly.
3148
             (chdir "spring-context")
3149
             #t))
3150
         (add-before 'build 'fix-cglib
3151
           (lambda _
3152
             (with-directory-excursion "src/main/java/org/springframework"
3153
               (substitute*
3154
                 (list
3155
                   "context/expression/MapAccessor.java"
3156
                   "context/annotation/ConfigurationClassEnhancer.java"
3157
                   "scripting/support/ScriptFactoryPostProcessor.java")
3158
                 (("org.springframework.objenesis.ObjenesisException")
3159
                  "org.objenesis.ObjenesisException")
3160
                 (("org.springframework.asm") "org.objectweb.asm")
3161
                 (("org.springframework.cglib") "net.sf.cglib")
3162
                 (("net.sf.cglib.core.SpringNamingPolicy")
3163
                  "org.springframework.cglib.core.SpringNamingPolicy")))
3164
             #t))
3165
         (add-before 'build 'remove-jruby
3166
           (lambda _
3167
             (delete-file-recursively
3168
               "src/main/java/org/springframework/scripting/jruby")
3169
             #t))
3170
         (add-before 'build 'copy-resources
3171
           (lambda _
3172
             (copy-recursively "src/main/resources" "build/classes")
3173
             #t))
3174
         (add-before 'check 'copy-test-resources
3175
           (lambda* (#:key inputs #:allow-other-keys)
3176
             (copy-recursively "src/test/resources"
3177
                               "build/test-classes")
3178
             #t)))))
3179
    (inputs
3180
     `(("groovy" ,groovy)
3181
       ("java-asm" ,java-asm)
3182
       ("java-aspectj-weaver" ,java-aspectj-weaver)
3183
       ("java-bsh" ,java-bsh)
3184
       ("java-cglib" ,java-cglib)
3185
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3186
       ("java-concurrency-api" ,java-concurrency-api)
3187
       ("java-hibernate-validator-engine" ,java-hibernate-validator-engine)
3188
       ("java-javax-ejb" ,java-javax-ejb)
3189
       ("java-javax-inject" ,java-javax-inject)
3190
       ("java-javax-interceptor" ,java-javax-interceptor)
3191
       ("java-javax-validation-1" ,java-javax-validation-1)
3192
       ("java-joda-time" ,java-joda-time)
3193
       ("java-objenesis" ,java-objenesis)
3194
       ("java-snakeyaml" ,java-snakeyaml)
3195
       ("java-spring-framework-aop" ,java-spring-framework-aop)
3196
       ("java-spring-framework-beans" ,java-spring-framework-beans)
3197
       ("java-spring-framework-beans-groovy" ,java-spring-framework-beans-groovy)
3198
       ("java-spring-framework-core" ,java-spring-framework-core)
3199
       ("java-spring-framework-expression" ,java-spring-framework-expression)
3200
       ("java-spring-framework-instrument" ,java-spring-framework-instrument)
3201
       ;; Note: for javax-el (el-api)
3202
       ("java-tomcat" ,java-tomcat)))
3203
    ;(native-inputs
3204
    ; `(("java-spring-framework-test" ,java-spring-framework-test)
3205
    ;   ,@(package-native-inputs java-spring-framework-core)))
3206
    (description "")))
3207
3208
(define-public java-spring-framework-web
3209
  (package
3210
    (inherit java-spring-framework-core)
3211
    (name "java-spring-framework-web")
3212
    (arguments
3213
     `(#:jar-name "java-spring-framework-web.jar"
3214
       #:source-dir "src/main/java"
3215
       #:test-dir "src/test"
3216
       #:phases
3217
       (modify-phases %standard-phases
3218
         (add-before 'configure 'chdir
3219
           (lambda _
3220
             ;; Needed because tests look for data in src/... directly.
3221
             (chdir "spring-web")
3222
             #t))
3223
         (add-before 'build 'copy-resources
3224
           (lambda _
3225
             (copy-recursively "src/main/resources" "build/classes")
3226
             #t))
3227
         ;(add-before 'check 'copy-test-classes
3228
         ;  (lambda _
3229
         ;    (mkdir-p "src/test/java/org/springframework/tests")
3230
         ;    (copy-file "../spring-core/src/test/java/org/springframework/tests/TestGroup.java"
3231
         ;               "src/test/java/org/springframework/tests/TestGroup.java")
3232
         ;    (copy-file "../spring-core/src/test/java/org/springframework/tests/Assume.java"
3233
         ;               "src/test/java/org/springframework/tests/Assume.java")
3234
         ;    #t))
3235
         (add-before 'check 'copy-test-resources
3236
           (lambda* (#:key inputs #:allow-other-keys)
3237
             (copy-recursively "src/test/resources" "build/test-classes")
3238
             #t)))))
3239
    (inputs
3240
     `(("java-aopalliance" ,java-aopalliance)
3241
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)
3242
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3243
       ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
3244
       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
3245
       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
3246
       ("java-fasterxml-jackson-dataformat-xml" ,java-fasterxml-jackson-dataformat-xml)
3247
       ("java-gson" ,java-gson)
3248
       ("java-httpcomponents-httpasyncclient" ,java-httpcomponents-httpasyncclient)
3249
       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
3250
       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
3251
       ("java-httpcomponents-httpcore-nio" ,java-httpcomponents-httpcore-nio)
3252
       ("java-javax-mail" ,java-javax-mail)
3253
       ("java-netty-buffer" ,java-netty-buffer)
3254
       ("java-netty-codec" ,java-netty-codec)
3255
       ("java-netty-handler" ,java-netty-handler)
3256
       ("java-netty-transport" ,java-netty-transport)
3257
       ("java-okhttp" ,java-okhttp)
3258
       ("java-protobuf" ,java-protobuf)
3259
       ("java-spring-framework-aop" ,java-spring-framework-aop)
3260
       ("java-spring-framework-beans" ,java-spring-framework-beans)
3261
       ("java-spring-framework-context" ,java-spring-framework-context)
3262
       ("java-spring-framework-core" ,java-spring-framework-core)))
3263
    (description "")))
3264
3265
(define-public java-spring-framework-expression
3266
  (package
3267
    (inherit java-spring-framework-core)
3268
    (name "java-spring-framework-expression")
3269
    (arguments
3270
     `(#:jar-name "java-spring-framework-expression.jar"
3271
       #:source-dir "src/main/java"
3272
       #:test-dir "src/test"
3273
       #:phases
3274
       (modify-phases %standard-phases
3275
         (add-before 'configure 'chdir
3276
           (lambda _
3277
             ;; Needed because tests look for data in src/... directly.
3278
             (chdir "spring-expression")
3279
             #t))
3280
         (add-before 'build 'fix-asm
3281
           (lambda _
3282
             (substitute* (find-files "." ".*.java")
3283
               (("org.springframework.asm") "org.objectweb.asm"))
3284
             (substitute* "src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java"
3285
               (("@Override") ""))
3286
             #t))
3287
         (add-before 'build 'copy-resources
3288
           (lambda _
3289
             (copy-recursively "src/main/resources" "build/classes")
3290
             #t))
3291
         (add-before 'check 'copy-test-classes
3292
           (lambda _
3293
             (mkdir-p "src/test/java/org/springframework/tests")
3294
             (copy-file "../spring-core/src/test/java/org/springframework/tests/TestGroup.java"
3295
                        "src/test/java/org/springframework/tests/TestGroup.java")
3296
             (copy-file "../spring-core/src/test/java/org/springframework/tests/Assume.java"
3297
                        "src/test/java/org/springframework/tests/Assume.java")
3298
             #t))
3299
         (add-before 'check 'copy-test-resources
3300
           (lambda* (#:key inputs #:allow-other-keys)
3301
             (copy-recursively "src/test/resources"
3302
                               "build/test-classes")
3303
             #t)))))
3304
    (inputs
3305
     `(("java-asm" ,java-asm)
3306
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3307
       ("java-spring-framework-core" ,java-spring-framework-core)))
3308
    (description "")))
3309
3310
(define-public java-lucene-core
3311
  (package
3312
    (name "java-lucene-core")
3313
    (version "6.6.0")
3314
    (source (origin
3315
              (method url-fetch)
3316
              (uri (string-append "mirror://apache/lucene/java/" version
3317
                                  "/lucene-" version "-src.tgz"))
3318
              (sha256
3319
               (base32
3320
                "105z3y931hxygczl602d8vqypbs28h1jfzihdq7zlvcfw0a5b5if"))))
3321
    (arguments
3322
     `(#:jar-name "lucene-core.jar"
3323
       #:source-dir "core/src/java"
3324
       #:test-dir "core/src/test"
3325
       #:tests? #f)); FIXME: circular dependencies
3326
    (build-system ant-build-system)
3327
    (native-inputs
3328
     `(("java-junit" ,java-junit)))
3329
    (home-page "https://lucene.apache.org/")
3330
    (synopsis "")
3331
    (description "")
3332
    (license license:asl2.0)))
3333
3334
(define-public java-lucene-queries
3335
  (package
3336
    (inherit java-lucene-core)
3337
    (name "java-lucene-queries")
3338
    (arguments
3339
     `(#:jar-name "lucene-queries.jar"
3340
       #:source-dir "queries/src/java"
3341
       #:test-dir "queries/src/test"
3342
       #:tests? #f));; FIXME: not in java subdirectory
3343
    (inputs
3344
     `(("java-lucene-core" ,java-lucene-core)))))
3345
3346
(define-public java-lucene-sandbox
3347
  (package
3348
    (inherit java-lucene-core)
3349
    (name "java-lucene-sandbox")
3350
    (arguments
3351
     `(#:jar-name "lucene-sandbox.jar"
3352
       #:source-dir "sandbox/src/java"
3353
       #:test-dir "sandbox/src/test"
3354
       #:tests? #f));; FIXME: not in java subdirectory
3355
    (inputs
3356
     `(("java-lucene-core" ,java-lucene-core)
3357
       ("java-lucene-queries" ,java-lucene-queries)))))
3358
3359
(define-public java-lucene-queryparser
3360
  (package
3361
    (inherit java-lucene-core)
3362
    (name "java-lucene-queryparser")
3363
    (arguments
3364
     `(#:jar-name "lucene-queryparser.jar"
3365
       #:source-dir "queryparser/src/java"
3366
       #:test-dir "queryparser/src/test"
3367
       #:tests? #f));; FIXME: not in java subdirectory
3368
    (inputs
3369
     `(("java-lucene-core" ,java-lucene-core)
3370
       ("java-lucene-sandbox" ,java-lucene-sandbox)
3371
       ("java-lucene-queries" ,java-lucene-queries)))))
3372
3373
(define-public java-jts
3374
  (package
3375
    (name "java-jts")
3376
    (version "1.15.0")
3377
    (source (origin
3378
              (method url-fetch)
3379
              (uri (string-append "https://github.com/locationtech/jts/archive"
3380
                                  "/jts-" version "-M1.tar.gz"))
3381
              (sha256
3382
               (base32
3383
                "00r9slwbzk2ngysmbnw9m4yazrdqzyi6gh62kxsvh52g30rs71jc"))))
3384
    (build-system ant-build-system)
3385
    (arguments
3386
     `(#:jar-name "jts.jar"
3387
       #:source-dir "modules/core/src/main/java"
3388
       #:test-dir "modules/core/src/test"
3389
       #:tests? #f)); requires swingui from junit3
3390
    (native-inputs
3391
     `(("java-junit" ,java-junit)))
3392
    (home-page "")
3393
    (synopsis "")
3394
    (description "")
3395
    (license (list license:epl1.0 license:edl1.0))))
3396
3397
(define-public java-h2
3398
  (package
3399
    (name "java-h2")
3400
    (version "1.4.196")
3401
    (source (origin
3402
              (method url-fetch)
3403
              (uri (string-append "https://github.com/h2database/h2database/"
3404
                                  "archive/version-" version ".tar.gz"))
3405
              (sha256
3406
               (base32
3407
                "06djd2wimqwaj1vmcvvzlgy2jczn3bzjlw23az9alzxbqvd7w34v"))))
3408
    (build-system ant-build-system)
3409
    (arguments
3410
     `(#:jar-name "h2.jar"
3411
       #:source-dir "h2/src/main"
3412
       #:tests? #f; no tess
3413
       #:phases
3414
       (modify-phases %standard-phases
3415
         (add-before 'build 'fix-jts
3416
           (lambda _
3417
             (for-each (lambda (file)
3418
                         (substitute* file
3419
                           (("com.vividsolutions") "org.locationtech")))
3420
               '("h2/src/main/org/h2/index/SpatialTreeIndex.java"
3421
                 "h2/src/main/org/h2/mvstore/db/MVSpatialIndex.java"
3422
                 "h2/src/main/org/h2/value/ValueGeometry.java"))
3423
             (substitute* "h2/src/main/org/h2/fulltext/FullTextLucene.java"
3424
               (("queryParser.QueryParser") "queryparser.classic.QueryParser")))))))
3425
    (inputs
3426
     `(("java-osgi-framework" ,java-osgi-framework)
3427
       ("java-tomcat" ,java-tomcat)
3428
       ("java-jts" ,java-jts)
3429
       ("java-lucene-core" ,java-lucene-core)
3430
       ("java-lucene-queryparser" ,java-lucene-queryparser)
3431
       ("java-slf4j-api" ,java-slf4j-api)
3432
       ("java-osgi-service-jdbc" ,java-osgi-service-jdbc)))
3433
    (home-page "http://h2database.com")
3434
    (synopsis "")
3435
    (description "")
3436
    (license '(license:mpl2.0 license:epl1.0))))
3437
3438
(define-public java-apache-felix-utils
3439
  (package
3440
    (name "java-apache-felix-utils")
3441
    (version "1.10.2")
3442
    (source (origin
3443
              (method url-fetch)
3444
              (uri (string-append "http://apache.mindstudios.com/felix/"
3445
                                  "org.apache.felix.utils-" version
3446
                                  "-source-release.tar.gz"))
3447
              (sha256
3448
               (base32
3449
                "0b2cvw7pfkslvlg0hfgqp3kl0qbzj5hq62mmx1m4iqwbi2h8103s"))))
3450
    (build-system ant-build-system)
3451
    (arguments
3452
     `(#:jar-name "felix-utils.jar"
3453
       #:source-dir "src/main/java"
3454
       #:phases
3455
       (modify-phases %standard-phases
3456
         (add-before 'build 'fix-version
3457
           (lambda _
3458
             (substitute* "src/main/java/org/apache/felix/utils/filter/FilterImpl.java"
3459
               (("compareTo\\(converted\\)")
3460
                "compareTo((Version) converted)"))
3461
             (substitute* "src/main/java/org/apache/felix/utils/filter/FilterImpl.java"
3462
               (("\\* Filter using a service's properties.")
3463
                "*/\n@Override\npublic boolean matches(Map m) { return match0(m); }\n/**"))
3464
             #t))
3465
         (add-before 'check 'fix-mock
3466
           (lambda _
3467
             (substitute* "src/test/java/org/apache/felix/utils/properties/MockBundleContext.java"
3468
               (("import org.osgi.framework.ServiceRegistration;")
3469
                (string-append "import org.osgi.framework.ServiceRegistration;\n"
3470
                               "import org.osgi.framework.ServiceFactory;\n"
3471
                               "import java.util.Collection;\n"
3472
                               "import org.osgi.framework.ServiceObjects;"))
3473
               (("public Bundle getBundle\\(\\)")
3474
                (string-append "@Override\n"
3475
                               "public Bundle getBundle(String s) {\n"
3476
                               " throw new UnsupportedOperationException();\n"
3477
                               " }\n"
3478
                               "@Override\n"
3479
                               "public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {\n"
3480
                               " throw new UnsupportedOperationException();\n"
3481
                               "}\n"
3482
                               "@Override\n"
3483
                               "public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> clazz, String filter) throws InvalidSyntaxException {"
3484
                               " throw new UnsupportedOperationException();\n"
3485
                               "}\n"
3486
                               "@Override\n"
3487
                               "public <S> ServiceReference<S> getServiceReference(Class<S> clazz) {"
3488
                               " throw new UnsupportedOperationException();\n"
3489
                               "}\n"
3490
                               "@Override\n"
3491
                               "public <S> ServiceRegistration<S> registerService(Class<S> clazz, ServiceFactory<S> factory, Dictionary<String, ?> properties) {"
3492
                               " throw new UnsupportedOperationException();\n"
3493
                               "}\n"
3494
                               "@Override\n"
3495
                               "public <S> ServiceRegistration<S> registerService(Class<S> clazz, S service, Dictionary<String, ?> properties) {"
3496
                               " throw new UnsupportedOperationException();\n"
3497
                               "}\n"
3498
                               "public Bundle getBundle()"))))))))
3499
    (inputs
3500
     `(("java-osgi-framework" ,java-osgi-framework)
3501
       ("java-osgi-service-log" ,java-osgi-service-log)
3502
       ("java-osgi-service-cm" ,java-osgi-service-cm)
3503
       ("java-osgi-util-tracker" ,java-osgi-util-tracker)))
3504
    (native-inputs
3505
     `(("java-junit" ,java-junit)
3506
       ("java-hamcrest-core" ,java-hamcrest-core)))
3507
    (home-page "")
3508
    (synopsis "")
3509
    (description "")
3510
    (license license:asl2.0)))
3511
3512
(define-public java-apache-felix-resolver
3513
  (package
3514
    (name "java-apache-felix-resolver")
3515
    (version "1.14.0")
3516
    (source (origin
3517
              (method url-fetch)
3518
              (uri (string-append "http://apache.mindstudios.com/felix/"
3519
                                  "org.apache.felix.resolver-" version
3520
                                  "-source-release.tar.gz"))
3521
              (sha256
3522
               (base32
3523
                "0qz8gjafqyrd76v824i98601za289l0fmqm8rk68fxxl2cfai14z"))))
3524
    (build-system ant-build-system)
3525
    (arguments
3526
     `(#:jar-name "felix-resolver.jar"
3527
       #:source-dir "src/main/java"))
3528
    (inputs
3529
     `(("java-osgi-resource" ,java-osgi-resource)
3530
       ("java-osgi-framework" ,java-osgi-framework)))
3531
    (native-inputs
3532
     `(("java-junit" ,java-junit)
3533
       ("java-mockito-1" ,java-mockito-1)
3534
       ("java-apache-felix-utils" ,java-apache-felix-utils)
3535
       ("java-hamcrest-core" ,java-hamcrest-core)
3536
       ("java-cglib" ,java-cglib)
3537
       ("java-asm" ,java-asm)
3538
       ("java-objenesis" ,java-objenesis)))
3539
    (home-page "")
3540
    (synopsis "")
3541
    (description "")
3542
    (license license:asl2.0)))
3543
3544
(define-public java-apache-felix
3545
  (package
3546
    (name "java-apache-felix")
3547
    (version "5.6.8")
3548
    (source (origin
3549
              (method url-fetch)
3550
              (uri (string-append "http://apache.mindstudios.com//felix/"
3551
                                  "org.apache.felix.framework-" version
3552
                                  "-source-release.tar.gz"))
3553
              (sha256
3554
               (base32
3555
                "1slbyqsnnzzfc48k9ab01yi8qalh5nrhy9gv5h1bi4y3d9mpx758"))))
3556
    (build-system ant-build-system)
3557
    (arguments
3558
     `(#:jar-name "felix.jar"
3559
       #:source-dir "src/main/java"
3560
       #:tests? #f)); tests require easymock 2, but we have easymock 3
3561
    (inputs
3562
     `(("java-osgi-annotation" ,java-osgi-annotation)
3563
       ("java-apache-felix-resolver" ,java-apache-felix-resolver)
3564
       ("java-osgi-service-resolver" ,java-osgi-service-resolver)))
3565
    (native-inputs
3566
     `(("java-junit" ,java-junit)
3567
       ("java-hamcrest-core" ,java-hamcrest-core)
3568
       ("java-asm" ,java-asm)
3569
       ("java-easymock" ,java-easymock)
3570
       ("java-mockito-1" ,java-mockito-1)))
3571
    (home-page "https://felix.apache.org/")
3572
    (synopsis "")
3573
    (description "")
3574
    (license license:asl2.0)))
3575
3576
;; This package is outdated, but it still required by java-velocity
3577
(define-public java-log4j-1.2
3578
  (package
3579
    (inherit java-log4j-core)
3580
    (version "1.2.17")
3581
    (name "java-log4j-1.2")
3582
    (source (origin
3583
              (method url-fetch)
3584
              (uri (string-append "mirror://apache/logging/log4j/" version
3585
                                  "/log4j-" version ".tar.gz"))
3586
              (sha256
3587
               (base32
3588
                "0qw618mdyg8nih499piqxkgqkvps2hpa03zbnmhlc8z63rvy6a55"))))
3589
    (arguments
3590
     `(#:tests? #f ; tests require unpackaged and outdated software
3591
       #:test-dir "src/test"
3592
       #:source-dir "src/main/java"
3593
       #:jar-name "log4j-1.2.jar"))))
3594
3595
(define-public java-avalon-logkit
3596
  (package
3597
    (name "java-avalon-logkit")
3598
    (version "2.1")
3599
    (source (origin
3600
              (method url-fetch)
3601
              (uri (string-append "https://archive.apache.org/dist/excalibur/"
3602
                                  "avalon-logkit/source/avalon-logkit-2.1-src.zip"))
3603
              (sha256
3604
               (base32
3605
                "1gx5xc35w9yzc44brw73ghm17h4dnlai4kgz9sy808mhlfc6x4pz"))
3606
              (patches
3607
                (search-patches "java-avalon-logkit-default-datasource.patch"))))
3608
    (build-system ant-build-system)
3609
    (arguments
3610
     `(#:test-target "test"
3611
       #:phases
3612
       (modify-phases %standard-phases
3613
         (replace 'install
3614
           (lambda* (#:key outputs #:allow-other-keys)
3615
             (let ((dir (string-append (assoc-ref outputs "out") "/share/java")))
3616
               (mkdir-p dir)
3617
               (copy-file "target/avalon-logkit-2.1.jar"
3618
                          (string-append dir "/avalon-logkit.jar"))))))))
3619
    (inputs
3620
     `(("java-mail" ,java-mail)
3621
       ("java-tomcat" ,java-tomcat)
3622
       ("java-log4j-1.2" ,java-log4j-1.2)
3623
       ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)))
3624
    (native-inputs
3625
     `(("unzip" ,unzip)
3626
       ("java-junit" ,java-junit)))
3627
    (home-page "https://excalibur.apache.org/")
3628
    (synopsis "")
3629
    (description "")
3630
    (license license:asl2.0)))
3631
3632
(define-public java-avalon-framework-api
3633
  (package
3634
    (name "java-avalon-framework-api")
3635
    (version "4.3")
3636
    (source (origin
3637
              (method url-fetch)
3638
              (uri (string-append "https://archive.apache.org/dist/excalibur/"
3639
                                  "avalon-framework/source/avalon-framework-api-"
3640
                                  version "-src.tar.gz"))
3641
              (sha256
3642
               (base32
3643
                "0iqx6g3lqzmq805cdzr9xghda20pl4akyb54yrvzrp896q2nmmd4"))))
3644
    (build-system ant-build-system)
3645
    (arguments
3646
     `(#:jar-name "avalon-framework.jar"
3647
       #:source-dir "src/java"
3648
       #:tests? #f; FIXME: not in the java subdirectory
3649
       #:test-dir "src/test"))
3650
    (inputs
3651
     `(("java-avalon-logkit" ,java-avalon-logkit)))
3652
    (native-inputs
3653
     `(("java-junit" ,java-junit)))
3654
    (home-page "")
3655
    (synopsis "")
3656
    (description "")
3657
    (license license:asl2.0)))
3658
3659
(define-public java-commons-digester
3660
  (package
3661
    (name "java-commons-digester")
3662
    (version "3.2")
3663
    (source (origin
3664
              (method url-fetch)
3665
              (uri (string-append "mirror://apache/commons/digester/source/"
3666
                                  "commons-digester3-" version "-src.tar.gz"))
3667
              (sha256
3668
               (base32
3669
                "03kc18dfl5ma50cn02ji7rbhm33qpxyd9js6mvzznf8f7y6pmykk"))))
3670
    (build-system ant-build-system)
3671
    (arguments
3672
     `(#:jar-name "commons-digester.jar"
3673
       #:source-dir "src/main/java"
3674
       #:phases
3675
       (modify-phases %standard-phases
3676
         (add-before 'build 'copy-resource
3677
           (lambda _
3678
             (copy-recursively "src/main/resources" "build/classes")
3679
             #t))
3680
         (add-before 'check 'copy-test-resource
3681
           (lambda _
3682
             (copy-recursively "src/test/resources" "build/test-classes")
3683
             #t)))))
3684
    (inputs
3685
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
3686
       ("java-cglib" ,java-cglib)
3687
       ("java-commons-beanutils", java-commons-beanutils)))
3688
    (native-inputs
3689
     `(("java-junit" ,java-junit)
3690
       ("java-hamcrest-core" ,java-hamcrest-core)))
3691
    (home-page "https://commons.apache.org/proper/commons-digester/")
3692
    (synopsis "")
3693
    (description "")
3694
    (license license:asl2.0)))
3695
3696
(define-public java-commons-digester-2
3697
  (package
3698
    (name "java-commons-digester-2")
3699
    (version "2.1")
3700
    (source (origin
3701
              (method url-fetch)
3702
              (uri (string-append "mirror://apache/commons/digester/source/"
3703
                                  "commons-digester-" version "-src.tar.gz"))
3704
              (sha256
3705
               (base32
3706
                "0gsli0qbi8h795ps7dpiccd3xfaqwrqcl7qzv59y5iyyd9xg04r7"))))
3707
    (build-system ant-build-system)
3708
    (arguments
3709
     `(#:jar-name "commons-digester.jar"
3710
       #:source-dir "src/main/java"
3711
       #:phases
3712
       (modify-phases %standard-phases
3713
         (add-before 'build 'copy-resource
3714
           (lambda _
3715
             (copy-recursively "src/main/resources" "build/classes")
3716
             #t))
3717
         (add-before 'check 'copy-test-resource
3718
           (lambda _
3719
             (copy-recursively "src/test/resources" "build/test-classes")
3720
             #t)))))
3721
    (inputs
3722
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
3723
       ("java-cglib" ,java-cglib)
3724
       ("java-commons-beanutils", java-commons-beanutils)))
3725
    (native-inputs
3726
     `(("java-junit" ,java-junit)
3727
       ("java-hamcrest-core" ,java-hamcrest-core)))
3728
    (home-page "https://commons.apache.org/proper/commons-digester/")
3729
    (synopsis "")
3730
    (description "")
3731
    (license license:asl2.0)))
3732
3733
(define-public java-commons-validator
3734
  (package
3735
    (name "java-commons-validator")
3736
    (version "1.6")
3737
    (source (origin
3738
              (method url-fetch)
3739
              (uri (string-append "mirror://apache//commons/validator/source/"
3740
                                  "commons-validator-" version "-src.tar.gz"))
3741
              (sha256
3742
               (base32
3743
                "1v2iqhjz4iqwmv38gzf953php770mmhglibixzvxjc2yca3sizkb"))))
3744
    (build-system ant-build-system)
3745
    (arguments
3746
     `(#:jar-name "commons-validator.jar"
3747
       #:source-dir "src/main/java"
3748
       #:tests? #f; Require network access (jakarta.apache.org)
3749
       #:test-exclude (list "**/Abstract*.java"
3750
                            ;; Require network access (jakarta.apache.org)
3751
                            "**/ByteTest.java"
3752
                            "**/DateTest.java"
3753
                            "**/DoubleTest.java"
3754
                            "**/EmailTest.java"
3755
                            "**/EntityImportTest.java"
3756
                            "**/ExceptionTest.java"
3757
                            "**/ExtensionTest.java")
3758
       #:phases
3759
       (modify-phases %standard-phases
3760
         (add-before 'build 'copy-resource
3761
           (lambda _
3762
             (copy-recursively "src/main/resources" "build/classes")
3763
             #t))
3764
         (add-before 'check 'copy-test-resource
3765
           (lambda _
3766
             (copy-recursively "src/test/resources" "build/test-classes")
3767
             #t)))))
3768
         ;(add-before 'build 'fix-digester
3769
         ;  (lambda _
3770
         ;    ;; Port from digester 1 to digester 3.
3771
         ;    (substitute* (find-files "src/main/java" ".*\\.java")
3772
         ;      (("commons.digester") "commons.digester3")
3773
         ;      (("org.apache.commons.digester3.xmlrules.DigesterLoader")
3774
         ;       "org.apache.commons.digester3.binder.DigesterLoader"))
3775
         ;    ;; digester is private in this class, so we use the getter
3776
         ;    (substitute* "src/main/java/org/apache/commons/validator/FormSetFactory.java"
3777
         ;      (("digester.peek") "getDigester().peek"))
3778
         ;    (substitute* "src/main/java/org/apache/commons/validator/ValidatorResources.java"
3779
         ;      (("// DEPRECATED")
3780
         ;       "// DEPRECATED\nimport org.apache.commons.digester3.xmlrules.FromXmlRulesModule;")
3781
         ;      (("private Digester initDigester")
3782
         ;       (string-append
3783
         ;         "private FromXmlRulesModule rulesModule(final URL url) {\n"
3784
         ;         "  return new FromXmlRulesModule() {\n"
3785
         ;         "    @Override\n"
3786
         ;         "    protected void loadRules() {\n"
3787
         ;         "      loadXMLRules(url);"
3788
         ;         "    }\n"
3789
         ;         "  };\n"
3790
         ;         "}\n"
3791
         ;         "private Digester initDigester"))
3792
         ;      ;; Copied from digester tests
3793
         ;      (("createDigester\\(rulesUrl\\)")
3794
         ;       "newLoader(rulesModule(rulesUrl)).newDigester()")))))))
3795
    (inputs
3796
     `(("java-commons-digester-2" ,java-commons-digester-2)
3797
       ("java-commons-beanutils" ,java-commons-beanutils)
3798
       ("java-commons-collections" ,java-commons-collections)
3799
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)))
3800
    (native-inputs
3801
     `(("java-junit" ,java-junit)))
3802
    (home-page "https://commons.apache.org/proper/commons-validator")
3803
    (synopsis "")
3804
    (description "")
3805
    (license license:asl2.0)))
3806
3807
(define-public java-myfaces-api
3808
  (package
3809
    (name "java-myfaces-api")
3810
    (version "2.3.2")
3811
    (source (origin
3812
              (method url-fetch)
3813
              (uri (string-append "mirror://apache/myfaces/source/"
3814
                                  "myfaces-core-assembly-" version "-src.tar.gz"))
3815
              (sha256
3816
               (base32
3817
                "0nixl958pi7f61vgnaj0nshdpifdg4m0rlxb9ckdmabr6x2fsnvc"))))
3818
              ; version 2.3.1:
3819
              ;(method svn-fetch)
3820
              ;(uri (svn-reference
3821
              ;       (url (string-append "http://svn.apache.org/repos/asf/"
3822
              ;                           "myfaces/core/tags/myfaces-core-module-"
3823
              ;                           version))
3824
              ;       (revision 1830627)))
3825
              ;(file-name (string-append name "-" version))
3826
              ;(sha256
3827
              ; (base32
3828
              ;  "1wag19756ahys8cms4snsqbqifkpfy578x3zkjkr5ba0424v5yvz"))))
3829
    (build-system ant-build-system)
3830
    (arguments
3831
     `(#:jar-name "myfaces-api.jar"
3832
       #:source-dir "api/src/main/java"
3833
       #:test-dir "api/src/test"
3834
       #:phases
3835
       (modify-phases %standard-phases
3836
         (add-after 'unpack 'double-unpack
3837
           (lambda _
3838
             (chdir "src")
3839
             (invoke "unzip" (car (find-files "." "source-release")))
3840
             (chdir (car (find-files "." "core-module" #:directories? #t)))
3841
             ;; Require a maven-2 plugin :/
3842
             (delete-file-recursively "api/src/main/java/javax/faces/component")
3843
             #t)))))
3844
    (inputs
3845
     `(("java-javax-inject" ,java-javax-inject)
3846
       ;; for javax-el (el-api)
3847
       ("java-tomcat" ,java-tomcat)))
3848
    (native-inputs
3849
     `(("unzip" ,unzip)))
3850
    (home-page "https://commons.apache.org/proper/commons-chain")
3851
    (synopsis "")
3852
    (description "")
3853
    (license license:asl2.0)))
3854
3855
(define-public java-commons-chain
3856
  (package
3857
    (name "java-commons-chain")
3858
    (version "1.2")
3859
    (source (origin
3860
              (method url-fetch)
3861
              (uri (string-append "mirror://apache//commons/chain/source/"
3862
                                  "commons-chain-" version "-src.tar.gz"))
3863
              (sha256
3864
               (base32
3865
                "0lgib3dpkympp8ajlgpfavbzfal9bv685gfa9ygyv091ja772rsd"))))
3866
    (build-system ant-build-system)
3867
    (arguments
3868
     `(#:test-target "test"
3869
       ;; TODO: incompatibilities with current versions of portlet
3870
       #:tests? #f
3871
       #:phases
3872
       (modify-phases %standard-phases
3873
         (add-before 'build 'prepare
3874
           (lambda* (#:key inputs #:allow-other-keys)
3875
         ;    ;; Replace digester with digester3
3876
         ;    (substitute* (find-files "src" ".*\\.java")
3877
         ;      (("commons.digester") "commons.digester3"))
3878
             (with-directory-excursion "src/java/org/apache/commons/chain"
3879
         ;      ;; Remove a dependency to myfaces
3880
               (delete-file-recursively "web/faces"))
3881
         ;      ;; digester is now private: use a public accessor
3882
         ;      (substitute* '("config/ConfigCatalogRule.java"
3883
         ;                     "config/ConfigDefineRule.java"
3884
         ;                     "config/ConfigRegisterRule.java")
3885
         ;        (("digester\\.") "getDigester().")))
3886
             #t))
3887
         (replace 'install
3888
           (install-jars ".")))))
3889
    (inputs
3890
     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
3891
       ("java-commons-beanutils" ,java-commons-beanutils)
3892
       ("java-commons-digester-2" ,java-commons-digester-2)
3893
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3894
       ("java-portlet-api" ,java-portlet-api)))
3895
    ;(native-inputs
3896
    ; `(("java-junit" ,java-junit)))
3897
    (home-page "https://commons.apache.org/proper/commons-chain")
3898
    (synopsis "")
3899
    (description "")
3900
    (license license:asl2.0)))
3901
3902
(define-public java-ognl
3903
  (package
3904
    (name "java-ognl")
3905
    (version "3.2.3")
3906
    (source (origin
3907
              (method url-fetch)
3908
              (uri (string-append "https://github.com/jkuhnert/ognl/archive/OGNL_"
3909
                                  (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
3910
                                  ".tar.gz"))
3911
              (sha256
3912
               (base32
3913
                "1p4yni36ln69cdl7icylpg87yzgnx9i08k4a5yhcvgmbr49p273w"))))
3914
    (build-system ant-build-system)
3915
    (arguments
3916
     `(#:tests? #f; Tests are run as a dependency of "dist"
3917
       #:make-flags (list "-Dcompile.version=7")
3918
       #:phases
3919
       (modify-phases %standard-phases
3920
         (add-before 'build 'remove-binaries
3921
           (lambda _
3922
             (for-each delete-file (find-files "." ".*\\.jar"))
3923
             #t))
3924
         (add-before 'build 'remove-clover
3925
           (lambda _
3926
             (substitute* "osbuild.xml"
3927
               (("clover-check,") "")
3928
               ((", clover.report"), "")
3929
               ((".*clover-setup.*") "")
3930
               ((".*src/test/\\*\\*/\\*.java.*") "")
3931
               (("<files>") "")
3932
               (("</files>") ""))
3933
             #t))
3934
         (replace 'install
3935
           (install-jars ".")))))
3936
    (inputs
3937
     `(("java-jboss-javassist" ,java-jboss-javassist)))
3938
    (native-inputs
3939
     `(("java-junit" ,java-junit)
3940
       ("java-hamcrest-core" ,java-hamcrest-core)
3941
       ("docbook-xml" ,docbook-xml)
3942
       ("docbook-xsl" ,docbook-xsl)
3943
       ("libxml2" ,libxml2)))
3944
    (home-page "http://www.opensymphony.com/ognl/"); down ? and ognl.org is not owned by the project
3945
    (synopsis "")
3946
    (description "")
3947
    (license license:asl2.0)))
3948
3949
(define-public java-apache-struts
3950
  (package
3951
    (name "java-apache-struts")
3952
    (version "2.5.20")
3953
    (source (origin
3954
              (method url-fetch)
3955
              (uri (string-append "mirror://apache/struts/" version "/struts-"
3956
                                  version "-src.zip"))
3957
              (sha256
3958
               (base32
3959
                "14ds6qrxrjd7np8yizdmqd49jd94yy2gghpq9zlvl53w4bv48kwx"))))
3960
    (build-system ant-build-system)
3961
    (arguments
3962
     `(#:jar-name "apache-struts.jar"
3963
       #:source-dir "src/core/src/main/java"
3964
       #:test-dir "src/core/src/test"))
3965
       ;#:phases
3966
       ;(modify-phases %standard-phases
3967
       ;  (add-before 'build 'copy-required-classes
3968
       ;    (lambda* (#:key inputs #:allow-other-keys)
3969
       ;      (let ((tools (assoc-ref inputs "java-velocity-tools"))
3970
       ;            (velocity-dir "build/velocity")
3971
       ;            (tools-dir (string-append "build/velocity/velocity-tools-"
3972
       ;                                      ,(package-version java-velocity-tools)
3973
       ;                                      "-src")))
3974
       ;        (mkdir-p velocity-dir)
3975
       ;        (with-directory-excursion velocity-dir
3976
       ;          (invoke "tar" "xf" tools))
3977
       ;        (with-directory-excursion tools-dir
3978
       ;          (for-each
3979
       ;            (lambda (file)
3980
       ;              (install-file file (string-append "../../../src/core/"
3981
       ;                                                (dirname file))))
3982
       ;            (find-files "." "."))))
3983
       ;              ;(find-files "." "ToolboxManager.java$")
3984
       ;              ;(find-files "." "^ToolInfo.java$")
3985
       ;              ;(find-files "." "^ServletUtils.java$")
3986
       ;              ;(find-files "." "^SkipSetters.java$")
3987
       ;              ;(find-files "." "^ViewToolContext.java$")
3988
       ;              ;(find-files "." "^ViewContext.java$")
3989
       ;              ;(find-files "." "^ChainedContext.java$")))))
3990
       ;      #t)))))
3991
    (inputs
3992
     `(("java-apache-freemarker" ,java-apache-freemarker)
3993
       ("java-log4j-api" ,java-log4j-api)
3994
       ("java-commons-fileupload" ,java-commons-fileupload)
3995
       ("java-commons-io" ,java-commons-io)
3996
       ("java-commons-lang3" ,java-commons-lang3)
3997
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3998
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)
3999
       ("java-ognl" ,java-ognl)
4000
       ("java-slf4j-api" ,java-slf4j-api)
4001
       ("java-spring-framework-beans" ,java-spring-framework-beans)
4002
       ("java-spring-framework-context" ,java-spring-framework-context)
4003
       ("java-spring-framework-core" ,java-spring-framework-core)
4004
       ("java-spring-framework-web" ,java-spring-framework-web)
4005
       ("java-velocity" ,java-velocity)
4006
       ("java-velocity-tools" ,(package-source java-velocity-tools))
4007
       ("java-testng" ,java-testng)))
4008
    (native-inputs
4009
     `(("java-junit" ,java-junit)
4010
       ("unzip" ,unzip)))
4011
    (home-page "https://struts.apache.org/")
4012
    (synopsis "")
4013
    (description "")
4014
    (license license:asl2.0)))
4015
4016
(define-public java-apache-struts-1
4017
  (package
4018
    (name "java-apache-struts-1")
4019
    (version "1.3.10")
4020
    (source (origin
4021
              (method url-fetch)
4022
              (uri (string-append "mirror://apache/struts/"
4023
                                  version "/struts-" version "-src.zip"))
4024
              (sha256
4025
               (base32
4026
                "05mxari6m8vrirz3i7rdvjpc637s11fjl6qk9hpvl1yyy7bigmn1"))))
4027
    (build-system ant-build-system)
4028
    (arguments
4029
     `(#:jar-name "struts.jar"
4030
       #:source-dir "src/core/src/main/java"
4031
       #:test-dir "src/core/src/test"
4032
       #:tests? #f; require deleted files
4033
       #:phases
4034
       (modify-phases %standard-phases
4035
         (add-before 'build 'prepare
4036
           (lambda* (#:key inputs #:allow-other-keys)
4037
             (with-directory-excursion "src/core/src/main/java"
4038
               (for-each delete-file (find-files "." "^Test"))
4039
               (delete-file-recursively "org/apache/struts/mock"))
4040
             #t)))))
4041
    (inputs
4042
     `(("antlr2" ,antlr2)
4043
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)
4044
       ("java-commons-beanutils" ,java-commons-beanutils)
4045
       ("java-commons-chain" ,java-commons-chain)
4046
       ("java-commons-digester-2" ,java-commons-digester-2)
4047
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
4048
       ("java-commons-fileupload" ,java-commons-fileupload)
4049
       ("java-commons-validator" ,java-commons-validator)))
4050
    (native-inputs
4051
     `(("unzip" ,unzip)))
4052
    (home-page "")
4053
    (synopsis "")
4054
    (description "")
4055
    (license license:asl2.0)))
4056
4057
(define-public java-apache-struts-taglib-1
4058
  (package
4059
    (inherit java-apache-struts-1)
4060
    (name "java-apache-struts-taglib-1")
4061
    (arguments
4062
     `(#:jar-name "struts.jar"
4063
       #:source-dir "src/taglib/src/main/java"
4064
       #:tests? #f; require deleted files
4065
       #:test-dir "src/taglib/src/test"))
4066
    (inputs
4067
     `(("java-apache-struts-1" ,java-apache-struts-1)
4068
       ,@(package-inputs java-apache-struts-1)))))
4069
4070
(define-public java-apache-struts-tiles-1
4071
  (package
4072
    (inherit java-apache-struts-1)
4073
    (name "java-apache-struts-tiles-1")
4074
    (arguments
4075
     `(#:jar-name "struts.jar"
4076
       #:source-dir "src/tiles/src/main/java"
4077
       #:tests? #f; require deleted files
4078
       #:test-dir "src/tiles/src/test"))
4079
    (inputs
4080
     `(("java-apache-struts-1" ,java-apache-struts-1)
4081
       ,@(package-inputs java-apache-struts-1)))))
4082
4083
(define-public java-velocity
4084
  (package
4085
    (name "java-velocity")
4086
    (version "1.7")
4087
    (source (origin
4088
              (method url-fetch)
4089
              (uri (string-append "mirror://apache/velocity/engine/"
4090
                                  version "/velocity-" version ".tar.gz"))
4091
              (sha256
4092
               (base32
4093
                "0rk7s04hkrr2k3glccx0yrglzqzj4qbipcrxhglk46yhx92vravc"))
4094
              (patches
4095
            (search-patches "java-velocity-dont-use-werken-xpath.patch"))))
4096
    (build-system ant-build-system)
4097
    (arguments
4098
     `(#:test-target "test-main"
4099
       #:tests? #f; FIXME: need a fix to build.xml and hsqldb
4100
       #:phases
4101
       (modify-phases %standard-phases
4102
         (add-before 'build 'prepare
4103
           (lambda* (#:key inputs #:allow-other-keys)
4104
             (delete-file-recursively "lib")
4105
             (mkdir-p "bin/lib")
4106
             ;; Don't download anything
4107
             (substitute* "build/build.xml"
4108
               ((".*download.xml.*") ""))
4109
             (chdir "build")
4110
             #t))
4111
         (replace 'install
4112
           (lambda* (#:key outputs #:allow-other-keys)
4113
             (let* ((out (assoc-ref outputs "out"))
4114
                    (dir (string-append out "/share/java")))
4115
               (mkdir-p dir)
4116
               (copy-file "../bin/velocity-1.7.jar"
4117
                          (string-append dir "/velocity-1.7.jar")))
4118
             #t)))))
4119
    (native-inputs
4120
     `(("javacc" ,javacc)
4121
       ("antlr" ,antlr2)))
4122
    (propagated-inputs
4123
     `(("java-commons-collections" ,java-commons-collections)
4124
       ("java-jakarta-oro" ,java-jakarta-oro)
4125
       ("java-jdom" ,java-jdom)
4126
       ("java-tomcat" ,java-tomcat)
4127
       ("java-avalon-logkit" ,java-avalon-logkit)
4128
       ("java-log4j-1.2" ,java-log4j-1.2)
4129
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
4130
       ("java-commons-lang" ,java-commons-lang)))
4131
    (home-page "https://velocity.apache.org/")
4132
    (synopsis "")
4133
    (description "")
4134
    (license license:asl2.0)))
4135
4136
(define-public java-velocity-2
4137
  (package
4138
    (inherit java-velocity)
4139
    (name "java-velocity")
4140
    (version "2.0")
4141
    (source (origin
4142
              (method svn-fetch)
4143
              (uri (svn-reference
4144
                     (url "http://svn.apache.org/repos/asf/velocity/engine/tags/2.0")
4145
                     (revision 1804253)))
4146
              (file-name (string-append name "-" version))
4147
              (sha256
4148
               (base32
4149
                "02s1dl9walwb965gryg15qy48477knb2rnxg5vmk33r9phrwvan8"))))
4150
    (arguments
4151
     `(#:jar-name "velocity.jar"
4152
       #:tests? #f; FIXME: need a fix to build.xml and hsqldb
4153
       #:source-dir "velocity-engine-core/src/main/java"
4154
       #:phases
4155
       (modify-phases %standard-phases
4156
         (add-before 'build 'copy-resources
4157
           (lambda _
4158
             (copy-recursively "velocity-engine-core/src/main/resources"
4159
                               "build/classes")
4160
             #t))
4161
         (add-before 'build 'generate-parser
4162
           (lambda _
4163
             (invoke "jjtree" "-STATIC=false" "-MULTI=true"
4164
                     "-NODE_PACKAGE=org.apache.velocity.runtime.parser.node"
4165
                     "-BUILD_NODE_FILES=false" "-NODE_USES_PARSER=true"
4166
                     "velocity-engine-core/src/main/parser/Parser.jjt")
4167
             (rename-file "Parser.jj"
4168
                          "velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/Parser.jj")
4169
             (rename-file "ParserTreeConstants.java"
4170
                          "velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/ParserTreeConstants.java")
4171
             (rename-file "JJTParserState.java"
4172
                          "velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/node/JJTParserState.java")
4173
             (invoke "javacc" "-STATIC=false" "-JDK_VERSION=1.8"
4174
                     (string-append "-OUTPUT_DIRECTORY=velocity-engine-core/src"
4175
                                    "/main/java/org/apache/velocity/runtime/parser")
4176
                     "velocity-engine-core/src/main/java/org/apache/velocity/runtime/parser/Parser.jj")
4177
             #t)))))
4178
    (native-inputs
4179
     `(("java-javacc-5" ,java-javacc-5)))
4180
    (propagated-inputs '())
4181
    (inputs
4182
     `(("java-commons-collections" ,java-commons-collections)
4183
       ("java-jdom" ,java-jdom)
4184
       ("java-log4j-api" ,java-log4j-api)
4185
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
4186
       ("java-commons-io" ,java-commons-io)
4187
       ("java-commons-lang" ,java-commons-lang3)
4188
       ("java-slf4j-api" ,java-slf4j-api)))))
4189
4190
(define-public java-sslext
4191
  (package
4192
    (name "java-sslext")
4193
    (version "1.2")
4194
    (source (origin
4195
              (method url-fetch)
4196
              (uri (string-append "mirror://sourceforge/sslext/sslext%20for%20"
4197
                                  "Struts%201.2/Release%200/"
4198
                                  "sslext-struts1.2-src.tar.gz"))
4199
              (sha256
4200
               (base32
4201
                "1a2axpq719smfc37lnj1flprpdhi8m1rmkdp90z2fv13rdg2dlq5"))))
4202
    (build-system ant-build-system)
4203
    (arguments
4204
     `(#:jar-name "sslext.jar"
4205
       #:source-dir "."
4206
       #:tests? #f
4207
       #:phases
4208
       (modify-phases %standard-phases
4209
         (add-before 'build 'fix-enum
4210
           (lambda _
4211
             (substitute* "build.xml"
4212
               (("<javac") "<javac source=\"1.4\"")))))))
4213
    (inputs
4214
     `(("java-commons-digester-2" ,java-commons-digester-2)
4215
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
4216
       ("java-apache-struts-1" ,java-apache-struts-1)
4217
       ("java-apache-struts-taglib-1" ,java-apache-struts-taglib-1)
4218
       ("java-apache-struts-tiles-1" ,java-apache-struts-tiles-1)
4219
       ("java-tomcat" ,java-tomcat)))
4220
    (home-page "https://velocity.apache.org/tools/devel")
4221
    (synopsis "")
4222
    (description "")
4223
    (license license:asl2.0)))
4224
4225
(define-public java-velocity-tools
4226
  (package
4227
    (name "java-velocity-tools")
4228
    (version "2.0")
4229
    (source (origin
4230
              (method url-fetch)
4231
              (uri (string-append "mirror://apache/velocity/tools/" version
4232
                                  "/velocity-tools-" version "-src.tar.gz"))
4233
              (sha256
4234
               (base32
4235
                "0d93v8nj95jfdgx7n72axaavdq2h800vxyi4vx35rdphndy1xg51"))
4236
              (patches
4237
                (search-patches
4238
                  "java-velocity-tools-2.0-servlet.patch"
4239
                  "java-velocity-tools-2.0-port-to-dom4j-2.0.patch"))))
4240
    (build-system ant-build-system)
4241
    (arguments
4242
     `(#:test-target "test-main"
4243
       #:tests? #f; FIXME: need a fix to build.xml and hsqldb
4244
       #:phases
4245
       (modify-phases %standard-phases
4246
         (add-before 'build 'prepare
4247
           (lambda* (#:key inputs #:allow-other-keys)
4248
             ;; Don't download anything
4249
             (substitute* "build.xml"
4250
               ((".*download.xml.*") ""))
4251
             #t))
4252
         (replace 'install
4253
           (install-jars "dist")))))
4254
    (inputs
4255
     `(("java-apache-struts-1" ,java-apache-struts-1)
4256
       ("java-apache-struts-taglib-1" ,java-apache-struts-taglib-1)
4257
       ("java-apache-struts-tiles-1" ,java-apache-struts-tiles-1)
4258
       ("java-commons-digester-2" ,java-commons-digester-2)
4259
       ("java-commons-validator" ,java-commons-validator)
4260
       ("java-commons-beanutils", java-commons-beanutils)
4261
       ("java-dom4j" ,java-dom4j)
4262
       ("java-sslext" ,java-sslext)
4263
       ("java-velocity" ,java-velocity)))
4264
    (home-page "https://velocity.apache.org/tools/devel")
4265
    (synopsis "")
4266
    (description "")
4267
    (license license:asl2.0)))
4268
4269
(define-public java-plexus-i18n
4270
  (package
4271
    (name "java-plexus-i18n")
4272
    (version "1.0-beta12")
4273
    (source (origin
4274
              (method git-fetch)
4275
              (uri (git-reference
4276
                     (url "https://github.com/codehaus-plexus/plexus-i18n.git")
4277
                     (commit "e5b25dd280af2db4d91742a0d93571335e09c46a")))
4278
              (file-name (git-file-name name version))
4279
              (sha256
4280
               (base32
4281
                "1nkq3c6ba8hv01qi30k50lwa18iswnl9q6i6lrcxdvyzq015jqcl"))))
4282
    (build-system ant-build-system)
4283
    (arguments
4284
     `(#:jar-name "java-plexus-i18n.jar"
4285
       #:source-dir "src/main/java"))
4286
    (inputs
4287
     `(("java-plexus-classworlds" ,java-plexus-classworlds)
4288
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
4289
       ("java-plexus-container-default" ,java-plexus-container-default)
4290
       ("java-plexus-utils" ,java-plexus-utils)))
4291
    (native-inputs
4292
     `(("java-commons-collections" ,java-commons-collections)
4293
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
4294
       ("java-guava" ,java-guava)
4295
       ("java-junit" ,java-junit)))
4296
    (home-page "https://codehaus-plexus.github.io/plexus-i18n/")
4297
    (synopsis "")
4298
    (description "")
4299
    (license license:asl2.0)))
4300
4301
(define-public java-plexus-velocity-component
4302
  (package
4303
    (name "java-plexus-velocity-component")
4304
    (version "1.2")
4305
    (source (origin
4306
              (method url-fetch)
4307
              (uri (string-append "https://github.com/codehaus-plexus/"
4308
                                  "plexus-velocity/archive/plexus-velocity-"
4309
                                  version ".tar.gz"))
4310
              (sha256
4311
               (base32
4312
                "04d34iny6364zcr1xy1xmg4grp6av8pcw3gsb1abrpxz4qhm84a6"))))
4313
    (build-system ant-build-system)
4314
    (arguments
4315
     `(#:jar-name "java-plexus-velocity-component.jar"
4316
       #:source-dir "src/main/java"))
4317
    (inputs
4318
     `(("java-commons-collections" ,java-commons-collections)
4319
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
4320
       ("java-guava" ,java-guava)
4321
       ("java-plexus-classworlds" ,java-plexus-classworlds)
4322
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
4323
       ("java-plexus-container-default" ,java-plexus-container-default)
4324
       ("java-plexus-utils" ,java-plexus-utils)
4325
       ("java-velocity" ,java-velocity)))
4326
    (native-inputs
4327
     `(("java-junit" ,java-junit)))
4328
    (home-page "https://codehaus-plexus.github.io/plexus-velocity/")
4329
    (synopsis "")
4330
    (description "")
4331
    (license license:asl2.0)))
4332
4333
(define-public java-commons-pool1
4334
  (package
4335
    (name "java-commons-pool")
4336
    (version "1.6")
4337
    (source (origin
4338
              (method url-fetch)
4339
              (uri (string-append "mirror://apache/commons/pool/source/"
4340
                                  "commons-pool-" version "-src.tar.gz"))
4341
              (sha256
4342
               (base32
4343
                "0nhrv5lf4a7ixzn7s4sgbw3pkijqj59gkjj0lvdncxl5vkjq5l9i"))))
4344
    (arguments
4345
     `(#:build-target "build-jar"
4346
       #:test-target "test"
4347
       #:phases
4348
       (modify-phases %standard-phases
4349
         (replace 'install
4350
           (lambda* (#:key outputs #:allow-other-keys)
4351
             (let ((target (string-append (assoc-ref outputs "out")
4352
                                          "/share/java")))
4353
               (install-file (string-append "dist/commons-pool-" ,version "-SNAPSHOT.jar")
4354
                             (string-append target "/commons-pool-" ,version ".jar"))))))))
4355
    (build-system ant-build-system)
4356
    (native-inputs
4357
     `(("java-junit" ,java-junit)))
4358
    (home-page "https://commons.apache.org/proper/commons-pool")
4359
    (synopsis "")
4360
    (description "")
4361
    (license license:asl2.0)))
4362
4363
(define-public java-portlet-api
4364
  (package
4365
    (name "java-portlet-api")
4366
    (version "3.0.1")
4367
    (source (origin
4368
              (method url-fetch)
4369
              (uri (string-append "mirror://apache/portals/pluto/"
4370
                                  "pluto-" version "-source-release.zip"))
4371
              (sha256
4372
               (base32
4373
                "0fl1xc1jgfvax2ccnygzfwgqrx60h40hzsv95gcmnp4n99im4pxh"))))
4374
    (build-system ant-build-system)
4375
    (arguments
4376
     `(#:jar-name "portlet-api.jar"
4377
       #:source-dir "portlet-api/src/main/java"
4378
       ;; no proper tests
4379
       #:tests? #f))
4380
    (inputs
4381
     `(("java-cdi-api" ,java-cdi-api)
4382
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)
4383
       ("java-javax-inject" ,java-javax-inject)))
4384
    (native-inputs
4385
     `(("unzip" ,unzip)))
4386
    (home-page "https://commons.apache.org/proper/commons-fileupload/")
4387
    (synopsis "")
4388
    (description "")
4389
    (license license:asl2.0)))
4390
4391
(define-public java-commons-fileupload
4392
  (package
4393
    (name "java-commons-fileupload")
4394
    (version "1.4")
4395
    (source (origin
4396
              (method url-fetch)
4397
              (uri (string-append "mirror://apache/commons/fileupload/source/"
4398
                                  "commons-fileupload-" version "-src.tar.gz"))
4399
              (sha256
4400
               (base32
4401
                "0w88khx30yj1f629y4dl7s5jiygh3lrdyxz8zmr2vmj8rhzd1dsf"))))
4402
    (build-system ant-build-system)
4403
    (arguments
4404
     `(#:jar-name "commons-fileupload.jar"
4405
       #:source-dir "src/main/java"
4406
       #:test-dir "src/test"
4407
       #:tests? #f)); Bad encoding
4408
    (inputs
4409
     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
4410
       ("java-commons-io" ,java-commons-io)
4411
       ("java-portlet-api" ,java-portlet-api)))
4412
    (home-page "https://commons.apache.org/proper/commons-fileupload/")
4413
    (synopsis "")
4414
    (description "")
4415
    (license license:asl2.0)))
4416
4417
;; This version is required by velocity 2.0
4418
(define-public java-javacc-5
4419
  (package
4420
    (inherit javacc)
4421
    (version "5.0")
4422
    (source (origin
4423
              (method url-fetch)
4424
              (uri "https://javacc.org/downloads/javacc-5.0src.tar.gz")
4425
              (sha256
4426
               (base32
4427
                "0w3kl5zal9g0gwpcnlii6spgvb2yi3dpj1vz592ly18h6yfswv3n"))))
4428
    (arguments
4429
      (substitute-keyword-arguments (package-arguments javacc)
4430
        ((#:phases phases)
4431
         `(modify-phases ,phases
4432
            ;; This phase renames the generated jar so it can be handled by
4433
            ;; our already written 'install phase.
4434
            (add-before 'install 'rename-jar
4435
              (lambda _
4436
                (mkdir-p "target")
4437
                (rename-file "bin/lib/javacc.jar" "target/javacc.jar")))))))))
4438
4439
;(define-public java-icu4j
4440
;  (package
4441
;    (name "java-icu4j")
4442
;    (version "58.2")
4443
;    (source (origin
4444
;              (method url-fetch)
4445
;              (uri (string-append
4446
;                     "http://download.icu-project.org/files/icu4j/" version
4447
;                     "/icu4j-"
4448
;                     (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
4449
;                     ".tgz"))
4450
;              (sha256
4451
;               (base32
4452
;                "1mvqjlc3cbaraa0bv0vyl44xf0x6n81inqsh69bl7f88iycfpns9"))))
4453
;    (build-system ant-build-system)
4454
;    (arguments
4455
;     `(#:tests? #f ; Requires java-ivy that we don't have yet.
4456
;       #:phases
4457
;       (modify-phases %standard-phases
4458
;         ;; icu4j archive contains its sources directly at the top, not in
4459
;         ;; a subdirectory as usual.
4460
;         (add-after 'unpack 'chdir
4461
;           (lambda _
4462
;             (chdir "..")))
4463
;         (replace 'install
4464
;           (lambda* (#:key outputs #:allow-other-keys)
4465
;             (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
4466
;               (mkdir-p share)
4467
;               (copy-file "icu4j-charset.jar" (string-append share "/icu4j-charset.jar"))
4468
;               (copy-file "icu4j.jar" (string-append share "/icu4j.jar"))))))))
4469
;    (home-page "http://site.icu-project.org/")
4470
;    (synopsis "")
4471
;    (description "")
4472
;    (license license:x11)))
4473
4474
; propose update
4475
;(define-public java-jsr305
4476
;  (package
4477
;    (name "java-jsr305")
4478
;    (version "3.0.2")
4479
;    (source (origin
4480
;              (method git-fetch)
4481
;              (uri (git-reference
4482
;                     (url "https://github.com/amaembo/jsr-305.git")
4483
;                     (commit "d7734b13c61492982784560ed5b4f4bd6cf9bb2c")))
4484
;              (file-name (string-append name "-" version))
4485
;              (sha256
4486
;               (base32
4487
;                "1wk159136pgc6i54drbq2whazfmdilvfqlxj3k19s9dfwbayf621"))))
4488
;    (build-system ant-build-system)
4489
;    (arguments
4490
;     `(#:jar-name (string-append ,name "-" ,version ".jar")
4491
;       #:source-dir "ri/src/main/java"
4492
;       #:tests? #f))
4493
;    (home-page "https://github.com/amaembo/jsr-305")
4494
;    (synopsis "")
4495
;    (description "")
4496
;    (license license:bsd-3)))
4497
4498
(define-public java-jsr308-langtools
4499
  (package
4500
    (name "java-jsr308-langtools")
4501
    (version "2.4.0")
4502
    (source (origin
4503
              (method hg-fetch)
4504
              (uri (hg-reference
4505
                     (url "https://bitbucket.org/typetools/jsr308-langtools")
4506
                     (changeset (string-append "jsr308-" version))))
4507
              (file-name (git-file-name name version))
4508
              (sha256
4509
               (base32
4510
                "1h38pib2snw5pxyz79p6i4ls2gr9gb5gkdpbc2c3w597samm6vwp"))
4511
              (modules '((guix build utils)))
4512
              (snippet
4513
                `(begin
4514
                   (for-each delete-file (find-files "." ".*.jar$"))
4515
                   #t))))
4516
    (build-system gnu-build-system)
4517
    ;; We need "jdk" because we want to use this package as the jdk later on.
4518
    (outputs '("out" "jdk"))
4519
    (arguments
4520
     `(;#:make-flags (list "-f" "make/build.xml")
4521
       ;#:build-target "clean-and-build-all-tools"
4522
       #:tests? #f; TODO: find the right target
4523
       #:validate-runpath? #f
4524
       #:phases
4525
       (modify-phases %standard-phases
4526
         (delete 'configure)
4527
         (replace 'build
4528
           (lambda* (#:key inputs #:allow-other-keys)
4529
             (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
4530
             (invoke "ant" "-f" "make/build.xml" "clean-and-build-all-tools")
4531
             #t))
4532
         (replace 'install
4533
           (lambda* (#:key inputs outputs #:allow-other-keys)
4534
             (let* ((out (assoc-ref outputs "jdk"))
4535
                    (jdk (assoc-ref inputs "jdk"))
4536
                    (java (string-append out "/share/java"))
4537
                    (bin (string-append out "/bin")))
4538
              (for-each (lambda (jar)
4539
                          (install-file jar java))
4540
                (find-files "." ".*.jar$"))
4541
              (mkdir-p bin)
4542
              (symlink (string-append jdk "/bin/java")
4543
                       (string-append bin "/java"))
4544
              (symlink (string-append jdk "/bin/jar")
4545
                       (string-append bin "/jar"))
4546
              (for-each (lambda (jar)
4547
                          (let* ((name (substring jar 2 (- (string-length jar) 4)))
4548
                                 (file (string-append bin "/" name)))
4549
                            (copy-file "src/share/bin/launcher.sh-template"
4550
                                       file)
4551
                            (substitute* file
4552
                              (("#TARGET_JAVA#") (string-append bin "/java"))
4553
                              (("#PS#") ":")
4554
                              (("#PROGRAM#") name)
4555
                              (("mylib=.*") "mylib=\"$mydir/../share/java\"\n")
4556
                              (("unzip") (which "unzip")))
4557
                            (chmod file #o755)))
4558
                (with-directory-excursion java
4559
                  (find-files "." ".*.jar$"))))
4560
             #t)))))
4561
    (inputs
4562
     `(("unzip" ,unzip)))
4563
    (native-inputs
4564
     `(("jdk" ,icedtea-8 "jdk")
4565
       ("ant" ,ant)))
4566
    (home-page "https://checkerframework.org/jsr308/")
4567
    (synopsis "Alternative java compiler implementation")
4568
    (description "This package contains the type annotations compiler, which
4569
is fully backward-compatible.  It can be used in place of javac and will have
4570
the same behaviour, but it will also allow the use of annotations in comments
4571
for compatibility with java 7.  This package is part of the checkerframework.")
4572
    (license license:gpl2))); GPL 2 only
4573
4574
(define-public java-plume-lib-reflection-util
4575
  (package
4576
    (name "java-plume-lib-reflection-util")
4577
    (version "0.0.1.1")
4578
    (source (origin
4579
              (method git-fetch)
4580
              (uri (git-reference
4581
                     (url "https://github.com/plume-lib/reflection-util.git")
4582
                     (commit "b0de5e70ad71f75a6fd1918d35fdaeb29e97e189")))
4583
              (file-name (git-file-name name version))
4584
              (sha256
4585
               (base32
4586
                "0k1ls34ka0vjpyav1kn3ys19wjyp1vrjaha73yr90knpjwij8mi2"))))
4587
    (build-system ant-build-system)
4588
    (arguments
4589
     `(#:jar-name "plume-lib-reflection-util.jar"
4590
       #:source-dir "src/main/java"))
4591
    (inputs
4592
     `(("java-checkerframework-qual-annotation"
4593
        ,java-checkerframework-qual-annotation)))
4594
    (native-inputs
4595
     `(("java-junit" ,java-junit)))
4596
    (home-page "https://plumelib.org")
4597
    (synopsis "")
4598
    (description "")
4599
    (license license:expat)))
4600
4601
(define-public java-plume-lib-util
4602
  (package
4603
    (name "java-plume-lib-util")
4604
    (version "1.0.5")
4605
    (source (origin
4606
              (method git-fetch)
4607
              (uri (git-reference
4608
                     (url "https://github.com/plume-lib/plume-util.git")
4609
                     (commit "db6dd1795b942e75360bf93de16f973922d767d8")))
4610
              (file-name (git-file-name name version))
4611
              (sha256
4612
               (base32
4613
                "1i1hyvyprx879awypb0hjq74k484dw3744ljrhwyxzvvrazr5rc4"))))
4614
    (build-system ant-build-system)
4615
    (arguments
4616
     `(#:jar-name "plume-lib-util.jar"
4617
       #:source-dir "src/main/java"))
4618
    (inputs
4619
     `(("java-checkerframework-qual-annotation"
4620
        ,java-checkerframework-qual-annotation)
4621
       ("java-plume-lib-reflection-util" ,java-plume-lib-reflection-util)))
4622
    (native-inputs
4623
     `(("java-junit" ,java-junit)))
4624
    (home-page "https://plumelib.org")
4625
    (synopsis "")
4626
    (description "")
4627
    (license license:expat)))
4628
4629
(define-public java-annotation-tools
4630
  (package
4631
    (name "java-annotation-tools")
4632
    (version "3.8.3")
4633
    (source (origin
4634
              (method git-fetch)
4635
              (uri (git-reference
4636
                     (url "https://github.com/typetools/annotation-tools.git")
4637
                     (commit version)))
4638
              (file-name (git-file-name name version))
4639
              (sha256
4640
               (base32
4641
                "1izl36pf9ahg5c4sq0ki49sfyq9r89v5snsp6559w12ykbl9x3pg"))))
4642
    (build-system ant-build-system)
4643
    (arguments
4644
     `(#:build-target "all"
4645
       #:jdk ,java-jsr308-langtools
4646
       #:tests? #f; too complex for now
4647
       #:phases
4648
       (modify-phases %standard-phases
4649
         (replace 'build
4650
           (lambda* (#:key inputs #:allow-other-keys)
4651
             (mkdir-p "build/jar")
4652
             (mkdir-p "build/classes")
4653
             (apply invoke "javac" "-d" "build/classes"
4654
                    (find-files "asmx/src" ".*.java$"))
4655
             (invoke "jar" "cf" "build/jar/asmx.jar"
4656
                     "-C" "build/classes" ".")
4657
             (delete-file-recursively "build/classes")
4658
             (mkdir-p "build/classes")
4659
             (apply invoke "javac" "-d" "build/classes"
4660
                    "-cp" (string-append "build/jar/asmx.jar:" (getenv "CLASSPATH"))
4661
                    (find-files "scene-lib/src" ".*.java$"))
4662
             (invoke "jar" "cf" "build/jar/scenelib.jar"
4663
                     "-C" "build/classes" ".")
4664
             (delete-file-recursively "build/classes")
4665
             (mkdir-p "build/classes")
4666
             (apply invoke "javac" "-d" "build/classes"
4667
                    "-cp" (string-append
4668
                            "build/jar/asmx.jar:build/jar/scenelib.jar:"
4669
                            (getenv "CLASSPATH"))
4670
                    (find-files "annotation-file-utilities/src" ".*.java$"))
4671
             (invoke "jar" "cf" "build/jar/annotation-file-utilities.jar"
4672
                     "-C" "build/classes" ".")
4673
             #t))
4674
           (replace 'install
4675
             (install-jars "build/jar")))))
4676
    (inputs
4677
     `(("java-checkerframework-qual-annotation"
4678
        ,java-checkerframework-qual-annotation)
4679
       ("java-guava" ,java-guava)
4680
       ("java-plume-lib-util" ,java-plume-lib-util)))
4681
    (home-page "https://checkerframework.org/annotation-file-utilities/")
4682
    (synopsis "External storage of annotations")
4683
    (description "Sometimes, it is convenient to specify the annotations
4684
outside the source code or the @file{.class} file.  This package is also known
4685
as the Annotation File Utilities, which is one of its components.")
4686
    (license license:expat)))
4687
4688
(define-public java-checkerframework
4689
  (package
4690
    (name "java-checkerframework")
4691
    (version "2.5.8")
4692
    (source (origin
4693
              (method git-fetch)
4694
              (uri (git-reference
4695
                     (url "https://github.com/typetools/checker-framework.git")
4696
                     (commit "21a34d7db3c20f314fa435190fc4db48b1f50e24")))
4697
              (file-name (git-file-name name version))
4698
              (sha256
4699
               (base32
4700
                "0fdf6m9s1bw8k4567vymhz7x6vpx255ks30nsawdsxhi0kqd219s"))
4701
              (modules '((guix build utils)))
4702
              (snippet
4703
                `(begin
4704
                   (for-each delete-file (find-files "." ".*.jar$"))
4705
                   #t))))
4706
    (build-system ant-build-system)
4707
    (arguments
4708
     `(#:jar-name "checkerframework.jar"
4709
       #:phases
4710
       (modify-phases %standard-phases
4711
         (replace 'build
4712
           (lambda _
4713
             (define (build name)
4714
               (format #t "Building ~a~%" name)
4715
               (delete-file-recursively "build/classes")
4716
               (mkdir-p "build/classes")
4717
               (apply invoke "javac" "-d" "build/classes"
4718
                      "-cp" (string-append (getenv "CLASSPATH") ":"
4719
                                           (string-join (find-files "build/jar" ".") ":"))
4720
                      (find-files (string-append name "/src/main/java")
4721
                                  ".*.java"))
4722
               (invoke "jar" "-cf" (string-append "build/jar/checkerframework-"
4723
                                                  name ".jar")
4724
                       "-C" "build/classes" "."))
4725
             (mkdir-p "build/classes")
4726
             (mkdir-p "build/test-classes")
4727
             (mkdir-p "build/jar")
4728
             (build "javacutil")
4729
             (build "dataflow")
4730
             (build "framework")
4731
             (build "checker")
4732
             #t))
4733
         (replace 'check
4734
           (lambda _
4735
             (define (test name)
4736
               (format #t "Testing ~a~%" name)
4737
               (delete-file-recursively "build/test-classes")
4738
               (mkdir-p "build/test-classes")
4739
               (apply invoke "javac" "-d" "build/test-classes"
4740
                      "-cp" (string-append (getenv "CLASSPATH") ":"
4741
                                           (string-join (find-files "build/jar" ".") ":"))
4742
                      (find-files (string-append name "/src/test/java")
4743
                                  ".*.java"))
4744
               (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":"
4745
                                                   (string-join (find-files "build/jar" ".") ":")
4746
                                                   ":build/test-classes")
4747
                       "org.junit.runner.JUnitCore"
4748
                       (map
4749
                         (lambda (file)
4750
                           (string-join
4751
                             (string-split
4752
                               (substring file 14 (- (string-length file) 5)) #\/)
4753
                             "."))
4754
                         (find-files (string-append name "/src/test/java")
4755
                                     ".*Test.java"))))
4756
             (test "framework")
4757
             (test "checker")
4758
             #t)))))
4759
    (inputs
4760
     `(("java-annotation-tools" ,java-annotation-tools)
4761
       ("java-javaparser" ,java-javaparser)))
4762
    (home-page "https://checkerframework.org/")
4763
    (synopsis "Statically detect common mistakes")
4764
    (description "This framework enhances the Java type system in order to
4765
detect null pointer exceptions, unintended side effects, SQL injections,
4766
concurrency errors, mistaken equality tests, and other run-time errors.")
4767
    (license (list
4768
               license:gpl2+; with classpath exception
4769
               license:expat))))
4770
4771
;; Some random annotations required by dependencies of checkerframework
4772
(define-public java-checkerframework-qual-annotation
4773
  (package
4774
    (inherit java-checkerframework)
4775
    (name "java-checkerframework-qual-annotation")
4776
    (arguments
4777
     `(#:tests? #f
4778
       #:phases
4779
       (modify-phases %standard-phases
4780
         (replace 'build
4781
           (lambda _
4782
             (define (find-files* dir dirs pattern)
4783
               (if (null? dirs)
4784
                 (find-files dir pattern)
4785
                 (let ((next (car dirs))
4786
                       (rest (cdr dirs)))
4787
                   (apply append (map (lambda (dir) (find-files* dir rest pattern)) (find-files dir next #:directories? #t))))))
4788
             (mkdir-p "build/classes")
4789
             (mkdir-p "build/jar")
4790
             (apply invoke "javac" "-d" "build/classes"
4791
                    "-cp" (getenv "CLASSPATH")
4792
                    (append
4793
                      ;; List from checker-qual/build.gradle (copySources)
4794
                      (find-files "." "^FormatUtil.java")
4795
                      (find-files "." "^NullnessUtil.java")
4796
                      (find-files "." "^RegexUtil.java")
4797
                      (find-files "." "^UnitsTools.java")
4798
                      (find-files "." "^SignednessUtil.java")
4799
                      (find-files "." "^I18nFormatUtil.java")
4800
                      (find-files "." "^Opt.java")
4801
                      (find-files "." "^PurityUnqualified.java")
4802
                      (find-files* "." '("^org$" "^checkerframework$" "^qual$")
4803
                                   ".*.java$")))
4804
             (invoke "jar" "cf" "build/jar/checkerframework-qual-annotation.jar"
4805
                     "-C" "build/classes" ".")
4806
             #t))
4807
         (replace 'install
4808
           (install-jars "build/jar")))))
4809
    (inputs '())
4810
    (native-inputs '())))
4811
4812
;; Some random annotations required by dependencies of checkerframework
4813
(define-public java-checkerframework-compat-qual-annotation
4814
  (package
4815
    (inherit java-checkerframework)
4816
    (name "java-checkerframework-compat-qual-annotation")
4817
    ;; Last version to provide this package
4818
    (version "2.5.5")
4819
    (source (origin
4820
              (method git-fetch)
4821
              (uri (git-reference
4822
                     (url "https://github.com/typetools/checker-framework.git")
4823
                     (commit "62602db32dbc0dd64b5aecc8c84671252a50e08b")))
4824
              (file-name (git-file-name name version))
4825
              (sha256
4826
               (base32
4827
                "0d6ngrv0262ipisfzb2f2wp7ygziqfmgd2hhsxdnip4a69ws1lz2"))
4828
              (modules '((guix build utils)))
4829
              (snippet
4830
                `(begin
4831
                   (for-each delete-file (find-files "." ".*.jar$"))
4832
                   #t))))
4833
    (arguments
4834
     `(#:tests? #f
4835
       #:phases
4836
       (modify-phases %standard-phases
4837
         (replace 'build
4838
           (lambda _
4839
             (define (find-files* dir dirs pattern)
4840
               (if (null? dirs)
4841
                 (find-files dir pattern)
4842
                 (let ((next (car dirs))
4843
                       (rest (cdr dirs)))
4844
                   (apply append (map (lambda (dir) (find-files* dir rest pattern)) (find-files dir next #:directories? #t))))))
4845
             (mkdir-p "build/classes")
4846
             (mkdir-p "build/jar")
4847
             (apply invoke "javac" "-d" "build/classes"
4848
                    "-cp" (getenv "CLASSPATH")
4849
                    (append
4850
                      ;; List from checker-qual/build.gradle (copySources)
4851
                      (find-files* "." '("^org$" "^checkerframework$" "^compatqual$")
4852
                                   ".*.java$")))
4853
             (invoke "jar" "cf" "build/jar/checkerframework-qual-annotation.jar"
4854
                     "-C" "build/classes" ".")
4855
             #t))
4856
         (replace 'install
4857
           (install-jars "build/jar")))))
4858
    (inputs '())
4859
    (native-inputs '())))
4860
4861
(define-public java-truth
4862
  (package
4863
    (name "java-truth")
4864
    (version "0.42")
4865
    (source (origin
4866
              (method git-fetch)
4867
              (uri (git-reference
4868
                     (url "https://github.com/google/truth.git")
4869
                     (commit "5aaf4bc1874583db510bbb209365382e5681d65a")))
4870
              (file-name (git-file-name name version))
4871
              (sha256
4872
               (base32
4873
                "1lyjmy66sprxx9hn9krwys4pv2ibjf4d1vqmbyhsx61bb6ji627f"))))
4874
    (build-system ant-build-system)
4875
    (arguments
4876
     `(#:jar-name "truth.jar"
4877
       #:source-dir "core/src/main/java"
4878
       #:test-dir "core/src/test"
4879
       #:tests? #f; TODO: require google-testing
4880
       #:phases
4881
       (modify-phases %standard-phases
4882
         (add-before 'build 'remove-duplicate
4883
           (lambda _
4884
             (delete-file-recursively
4885
               "core/src/main/java/com/google/common/truth/super")
4886
             (delete-file-recursively
4887
               "core/src/test/java/com/google/common/truth/super")
4888
             #t)))))
4889
    (inputs
4890
     `(("java-checkerframework-compat-qual-annotation"
4891
        ,java-checkerframework-compat-qual-annotation)
4892
       ("java-diff-utils" ,java-diff-utils)
4893
       ("java-error-prone-annotations" ,java-error-prone-annotations)
4894
       ("java-guava-25" ,java-guava-25)
4895
       ("java-hamcrest-core" ,java-hamcrest-core)
4896
       ("java-junit" ,java-junit)))
4897
    (home-page "https://google.github.io/truth")
4898
    (synopsis "Assertion library for Java")
4899
    (description "Truth makes your test assertions and failure messages more
4900
readable.  Similar to AssertJ, it natively supports many JDK and Guava types,
4901
and it is extensible to others.")
4902
    (license license:asl2.0)))
4903
4904
(define-public java-javapoet
4905
  (package
4906
    (name "java-javapoet")
4907
    (version "1.8.0")
4908
    (source (origin
4909
              (method url-fetch)
4910
              (uri (string-append "https://github.com/square/javapoet/archive/javapoet-"
4911
                                  version ".tar.gz"))
4912
              (file-name (string-append name "-" version ".tar.gz"))
4913
              (sha256
4914
               (base32
4915
                "0xpjbh8wcyj9yd9hb936ia5g6l2q1jlyqjvwcc290cwjrz7crb93"))))
4916
    (build-system ant-build-system)
4917
    (arguments
4918
     `(#:jar-name (string-append ,name "-" ,version ".jar")
4919
       #:source-dir "src/main/java"
4920
       #:tests? #f)); TODO: require google-testing
4921
    (native-inputs
4922
     `(("java-guava-25" ,java-guava-25)
4923
       ("java-junit" ,java-junit)
4924
       ("java-mockito-1" ,java-mockito-1)
4925
       ("java-truth" ,java-truth)))
4926
    (home-page "https://github.com/square/javapoet")
4927
    (synopsis "")
4928
    (description "")
4929
    (license license:asl2.0)))
4930
4931
(define-public java-auto-value
4932
  (package
4933
    (name "java-auto-value")
4934
    (version "1.4.1")
4935
    (source (origin
4936
              (method url-fetch)
4937
              (uri (string-append "https://github.com/google/auto/archive/auto-value-"
4938
                                  version ".tar.gz"))
4939
              (file-name (string-append name "-" version ".tar.gz"))
4940
              (sha256
4941
               (base32
4942
                "1qd59bwa56bynsdxfbgm40i7ndrj599wflza214kzigk16nprc1m"))))
4943
    (build-system ant-build-system)
4944
    (arguments
4945
     `(#:jar-name (string-append ,name "-" ,version ".jar")
4946
       #:source-dir "value/src/main/java:common/src/main/java:service/src/main/java"
4947
       #:tests? #f))
4948
    (inputs
4949
     `(("java-guava" ,java-guava)
4950
       ("java-javapoet" ,java-javapoet)))
4951
    (home-page "https://github.com/google/auto/tree/master/value")
4952
    (synopsis "")
4953
    (description "")
4954
    (license license:asl2.0)))
4955
4956
(define-public java-diff-utils
4957
  (package
4958
    (name "java-diff-utils")
4959
    (version "1.5.0")
4960
    (source (origin
4961
              (method url-fetch)
4962
              (uri (string-append "https://github.com/KengoTODA/java-diff-utils/archive/"
4963
                                  "diffutils-" version ".tar.gz"))
4964
              (file-name (string-append name "-" version ".tar.gz"))
4965
              (sha256
4966
               (base32
4967
                "107bkk542cgpk8sqgc41j0ljarb6zs9p59m3phvvv9rln6rwnmjc"))))
4968
    (arguments
4969
     `(#:build-target "all"
4970
       #:tests? #f; I don't know how to run src/test
4971
       #:phases
4972
       (modify-phases %standard-phases
4973
         (add-before 'configure 'fix-build.xml
4974
           (lambda _
4975
             (substitute* "build.xml"
4976
               (("1.5") "1.7")
4977
               (("1.3.0-SNAPSHOT") ,version))))
4978
         (replace 'install
4979
           (lambda* (#:key outputs #:allow-other-keys)
4980
             (mkdir-p (string-append (assoc-ref outputs "out") "/share/java"))
4981
             (with-directory-excursion "dist"
4982
               (for-each (lambda (file)
4983
                           (copy-file file
4984
                                      (string-append (assoc-ref outputs "out")
4985
                                                     "/share/java/" file)))
4986
                 (find-files "." ".*.jar"))))))))
4987
    (propagated-inputs
4988
     `(("guava" ,java-guava)
4989
       ("java-jsr305" ,java-jsr305)))
4990
    (native-inputs
4991
     `(("java-junit" ,java-junit)))
4992
    (build-system ant-build-system)
4993
    (home-page "https://github.com/KengoTODA/java-diff-utils")
4994
    (synopsis "")
4995
    (description "")
4996
    (license license:asl2.0)))
4997
4998
;; com.sun.tools.javac.code.Scope.LookupKind.NON_RECURSIVE
4999
;; com.sun.source.tree.PackageTree
5000
;; com.sun.tools.javac.tree.JCTree.JCPackageDecl
5001
5002
;; TODO: error-prone depends on java9 at least from version 2.0.13 which is the
5003
;; earliest version that guava can use.
5004
;; Fortunately, java7 can be used for -annotations.
5005
(define-public java-error-prone
5006
  (package
5007
    (name "java-error-prone")
5008
    (version "2.3.2")
5009
    (source (origin
5010
              (method url-fetch)
5011
              (uri (string-append "https://github.com/google/error-prone/archive/v"
5012
                                  version ".tar.gz"))
5013
              (file-name (string-append name "-" version ".tar.gz"))
5014
              (sha256
5015
               (base32
5016
                "0m0gzdhahjmiyr1ccl2zbf35qin3qbjxf3ay42vj49ba4c3yy8s7"))))
5017
    (build-system ant-build-system)
5018
    (arguments
5019
     `(#:tests? #f
5020
       #:jar-name "error-prone.jar"
5021
       #:source-dir "check_api/src/main/java"
5022
       #:phases
5023
       (modify-phases %standard-phases
5024
         (add-before 'build 'copy-internal
5025
           (lambda _
5026
             (mkdir-p "ant/src/main/java/com/google/errorprone/internal")
5027
             (copy-file
5028
               "core/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java"
5029
               "ant/src/main/java/com/google/errorprone/internal/NonDelegatingClassLoader.java")
5030
             #t)))))
5031
    (propagated-inputs '())
5032
    (home-page "https://github.com/google/guava")
5033
    (synopsis "")
5034
    (description "")
5035
    (license license:asl2.0)))
5036
5037
;(define-public java-error-prone-check-api
5038
;  (package
5039
;    (inherit java-error-prone)
5040
;    (name "java-error-prone-check-api")
5041
;    (version (package-version java-error-prone))
5042
;    (arguments
5043
;     `(#:tests? #f
5044
;       #:jar-name (string-append ,name "-" ,version ".jar")
5045
;       #:source-dir "check_api/src/main/java"))
5046
;    (propagated-inputs
5047
;     `(("java-error-prone-annotations" ,java-error-prone-annotations)
5048
;       ("java-error-prone-annotation" ,java-error-prone-annotation)
5049
;       ("java-jsr305" ,java-jsr305)
5050
;       ("java-diff-utils" ,java-diff-utils)
5051
;       ("java-auto-value" ,java-auto-value)
5052
;       ("java-checker-framework" ,java-checker-framework)
5053
;       ("java-guava" ,java-guava)))))
5054
5055
;(define-public java-error-prone-core
5056
;  (package
5057
;    (inherit java-error-prone)
5058
;    (name "java-error-prone-core")
5059
;    (version (package-version java-error-prone))
5060
;    (arguments
5061
;     `(#:tests? #f
5062
;       #:jar-name (string-append ,name "-" ,version ".jar")
5063
;       #:source-dir "core/src/main/java"))
5064
;    (propagated-inputs
5065
;     `(("java-error-prone-annotations" ,java-error-prone-annotations)
5066
;       ("java-error-prone-annotation" ,java-error-prone-annotation)
5067
;       ("java-jsr305" ,java-jsr305)
5068
;       ("java-auto-value" ,java-auto-value)
5069
;       ("java-checker-framework" ,java-checker-framework)
5070
;       ("java-guava" ,java-guava)))))
5071
5072
(define-public java-error-prone-annotation
5073
  (package
5074
    (inherit java-error-prone)
5075
    (name "java-error-prone-annotation")
5076
    (version (package-version java-error-prone))
5077
    (arguments
5078
     `(#:tests? #f
5079
       #:jar-name (string-append ,name "-" ,version ".jar")
5080
       #:source-dir "annotation/src/main/java"))
5081
    (propagated-inputs
5082
     `(("java-jsr305" ,java-jsr305)
5083
       ("java-guava" ,java-guava)))))
5084
5085
(define-public java-error-prone-annotations
5086
  (package
5087
    (inherit java-error-prone)
5088
    (name "java-error-prone-annotations")
5089
    (version (package-version java-error-prone))
5090
    (arguments
5091
     `(#:tests? #f
5092
       #:jar-name (string-append ,name "-" ,version ".jar")
5093
       #:source-dir "annotations/src/main/java"))
5094
    (propagated-inputs
5095
     `(("java-jsr305" ,java-jsr305)))))
5096
5097
;; Java-j2objc is for OS X, but the annotations sub-project is used by other
5098
;; packages here, such as guava.
5099
(define-public java-j2objc-annotations
5100
  (package
5101
    (name "java-j2objc-annotations")
5102
    (version "1.3.1")
5103
    (source (origin
5104
              (method url-fetch)
5105
              (uri (string-append "https://github.com/google/j2objc/archive/"
5106
                                  version ".tar.gz"))
5107
              (file-name (string-append name "-" version ".tar.gz"))
5108
              (sha256
5109
               (base32
5110
                "0d5spbr1whw2afg6mknyr7ifm6xivn3bbvnzjxva2zzkyq944hv0"))))
5111
    (build-system ant-build-system)
5112
    (arguments
5113
     `(#:tests? #f
5114
       #:jar-name (string-append ,name "-" ,version ".jar")
5115
       #:source-dir "annotations/src/main/java"))
5116
    (synopsis "")
5117
    (description "")
5118
    (home-page "https://github.com/google/j2objc")
5119
    (license license:asl2.0)))
5120
5121
;; TODO: animal-sniffer-enforcer-rule and animal-sniffer-maven-plugin depend
5122
;; on maven.
5123
(define-public java-animal-sniffer
5124
  (package
5125
    (name "java-animal-sniffer")
5126
    (version "1.15")
5127
    (source (origin
5128
              (method url-fetch)
5129
              (uri (string-append "https://github.com/mojohaus/animal-sniffer/"
5130
                                  "archive/animal-sniffer-parent-"
5131
                                  version ".tar.gz"))
5132
              (file-name (string-append name "-" version ".tar.gz"))
5133
              (sha256
5134
               (base32
5135
                "11k7fhhx6xcpz6iwsxpvr5ivbv1db6xmrrnhl1nzhxl8ja1rsmdc"))))
5136
    (build-system ant-build-system)
5137
    (propagated-inputs
5138
     `(("java-asm" ,java-asm)))
5139
    (arguments
5140
     `(#:tests? #f
5141
       #:jar-name (string-append ,name "-" ,version ".jar")
5142
       #:source-dir "animal-sniffer/src/main/java"))
5143
    (home-page "http://www.mojohaus.org/animal-sniffer")
5144
    (synopsis "")
5145
    (description "")
5146
    (license license:asl2.0)))
5147
5148
(define-public java-animal-sniffer-annotations
5149
  (package
5150
    (inherit java-animal-sniffer)
5151
    (name "java-animal-sniffer-annotations")
5152
    (version (package-version java-animal-sniffer))
5153
    (propagated-inputs '())
5154
    (arguments
5155
     `(#:tests? #f
5156
       #:jar-name (string-append ,name "-" ,version ".jar")
5157
       #:source-dir "animal-sniffer-annotations/src/main/java"))))
5158
5159
(define-public java-animal-sniffer-ant-tasks
5160
  (package
5161
    (inherit java-animal-sniffer)
5162
    (name "java-animal-sniffer-ant-tasks")
5163
    (version (package-version java-animal-sniffer))
5164
    (propagated-inputs
5165
     `(("animal-sniffer" ,java-animal-sniffer)))
5166
    (arguments
5167
     `(#:tests? #f
5168
       #:jar-name (string-append ,name "-" ,version ".jar")
5169
       #:source-dir "animal-sniffer-ant-tasks/src/main/java"))))
5170
5171
(define-public java-boot-classpath-detector
5172
  (package
5173
    (inherit java-animal-sniffer)
5174
    (name "java-boot-classpath-detector")
5175
    (version (package-version java-animal-sniffer))
5176
    (propagated-inputs '())
5177
    (arguments
5178
     `(#:tests? #f
5179
       #:jar-name (string-append ,name "-" ,version ".jar")
5180
       #:source-dir "java-boot-classpath-detector/src/main/java"))))
5181
5182
(define-public java-guava-23.5
5183
  (package
5184
    (inherit java-guava)
5185
    (version "23.5")
5186
    (source (origin
5187
              (method url-fetch)
5188
              (uri (string-append "https://github.com/google/guava/archive/v"
5189
                                  version ".tar.gz"))
5190
              (file-name (string-append "guava-" version ".tar.gz"))
5191
              (sha256
5192
               (base32
5193
                "1a4yl9l8b3w967l3ahhkic2n7aiygykw49nvmvp525l6qxwdl6a9"))))
5194
    (arguments
5195
     `(#:tests? #f                      ; no tests included
5196
       #:jar-name "guava.jar"
5197
       #:source-dir "guava/src"
5198
       #:phases
5199
       (modify-phases %standard-phases
5200
         (add-after 'unpack 'trim-sources
5201
           (lambda _
5202
             (with-directory-excursion "guava/src/com/google/common"
5203
               ;; Remove annotations to avoid extra dependencies:
5204
               ;; * "j2objc" annotations are used when converting Java to
5205
               ;;   Objective C;
5206
               ;; * "errorprone" annotations catch common Java mistakes at
5207
               ;;   compile time;
5208
               ;; * "IgnoreJRERequirement" is used for Android.
5209
               (substitute* (find-files "." "\\.java$")
5210
                 (("import com.google.j2objc.*") "")
5211
                 (("import com.google.errorprone.annotation.*") "")
5212
                 (("import org.codehaus.mojo.animal_sniffer.*") "")
5213
                 (("@CanIgnoreReturnValue") "")
5214
                 (("@LazyInit") "")
5215
                 (("@WeakOuter") "")
5216
                 (("@RetainedWith") "")
5217
                 (("@Weak") "")
5218
                 (("@ForOverride") "")
5219
                 (("@J2ObjCIncompatible") "")
5220
                 (("@CompatibleWith\\(\"[A-Z]\"\\)") "")
5221
                 (("@Immutable\\([^\\)]*\\)") "")
5222
                 (("@Immutable") "")
5223
                 (("@ReflectionSupport\\([^\\)]*\\)") "")
5224
                 (("@DoNotMock.*") "")
5225
                 (("@MustBeClosed") "")
5226
                 (("@IgnoreJRERequirement") "")))
5227
             #t)))))))
5228
5229
(define-public java-guava-25
5230
  (package
5231
    (inherit java-guava)
5232
    (version "25.1")
5233
    (source (origin
5234
              (method url-fetch)
5235
              (uri (string-append "https://github.com/google/guava/"
5236
                                  "archive/v" version ".tar.gz"))
5237
              (file-name (string-append "java-guava-" version ".tar.gz"))
5238
              (sha256
5239
               (base32
5240
                "0jxwp8kfjcj4hyjwvnakk4d0yszp9np2l8c3hwz3ipxmwxk4dx7k"))))
5241
    (arguments
5242
     `(#:tests? #f                      ; no tests included
5243
       #:jar-name "guava.jar"
5244
       #:source-dir "guava/src"
5245
       #:jdk ,openjdk9
5246
       #:phases
5247
       (modify-phases %standard-phases
5248
         (add-after 'unpack 'trim-sources
5249
           (lambda _
5250
             (with-directory-excursion "guava/src/com/google/common"
5251
               ;; Remove annotations to avoid extra dependencies:
5252
               ;; * "j2objc" annotations are used when converting Java to
5253
               ;;   Objective C;
5254
               ;; * "errorprone" annotations catch common Java mistakes at
5255
               ;;   compile time;
5256
               ;; * "IgnoreJRERequirement" is used for Android.
5257
               (substitute* (find-files "." "\\.java$")
5258
                 (("import com.google.j2objc.*") "")
5259
                 (("import org.codehaus.mojo.animal_sniffer.*") "")
5260
                 (("@WeakOuter") "")
5261
                 (("@RetainedWith") "")
5262
                 (("@Weak") "")
5263
                 (("@J2ObjCIncompatible") "")
5264
                 (("@ReflectionSupport\\([^\\)]*\\)") "")
5265
                 (("@IgnoreJRERequirement") "")))
5266
             #t)))))
5267
     (inputs
5268
      `(("java-checkerframework-qual-annotation"
5269
         ,java-checkerframework-qual-annotation)
5270
        ("java-error-prone-annotations" ,java-error-prone-annotations)
5271
        ("java-jsr305" ,java-jsr305)))))
5272
5273
;(define-public java-xml-commons
5274
;  (package
5275
;    (name "java-xml-commons")
5276
;    (version "1.4.01")
5277
;    (source (origin
5278
;              (method url-fetch)
5279
;              (uri (string-append "mirror://apache/xerces/xml-commons/source/"
5280
;                                  "xml-commons-external-" version "-src.tar.gz"))
5281
;              (sha256
5282
;               (base32
5283
;                "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
5284
;    (build-system ant-build-system)
5285
;    (arguments
5286
;     `(#:jar-name "xml-commons.jar"
5287
;       #:source-dir "."
5288
;       #:tests? #f)); no tests
5289
;    (home-page "")
5290
;    (synopsis "")
5291
;    (description "")
5292
;    (license (list license:asl2.0; apache/...
5293
;                   license:public-domain; sax/...
5294
;                   license:bsd-3; w3c/...
5295
;                   ))))
5296
;;; actually http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
5297
5298
;; This is very old (2002)!
5299
(define-public java-xmlpull
5300
  (package
5301
    (name "java-xmlpull")
5302
    (version "1.0.5")
5303
    (source (origin
5304
              (method url-fetch)
5305
              (uri (string-append "http://www.xmlpull.org/v1/download/xmlpull_"
5306
                                  (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
5307
                                  "_src.tgz"))
5308
              (sha256
5309
               (base32
5310
                "1m2gymkvvpclz6x6f3vz3xkh00p94d28iy6k1j54nklf5crm979p"))))
5311
    (build-system ant-build-system)
5312
    (arguments
5313
     `(#:tests? #f; no tests
5314
       #:phases
5315
       (modify-phases %standard-phases
5316
         (replace 'install
5317
           (lambda* (#:key outputs #:allow-other-keys)
5318
             (let ((out (string-append (assoc-ref outputs "out") "/share/java")))
5319
               (mkdir-p out)
5320
               (copy-file "build/lib/xmlpull_1_0_5.jar"
5321
                          (string-append out "/xmlpull.jar"))))))))
5322
    (home-page "http://www.xmlpull.org/")
5323
    (synopsis "")
5324
    (description "")
5325
    (license license:public-domain)))
5326
5327
(define-public java-commons-bcel-6.0
5328
  (package
5329
    (name "java-commons-bcel")
5330
    (version "6.0")
5331
    (source (origin
5332
              (method url-fetch)
5333
              (uri (string-append "mirror://apache/commons/bcel/source/bcel-"
5334
                                  version "-src.tar.gz"))
5335
              (sha256
5336
               (base32
5337
                "0n39601zcj7ymjihfv53r260mf3n8kj6bqhxv90dw5sgc7qbjqxr"))))
5338
    (build-system ant-build-system)
5339
    (arguments
5340
     `(#:jar-name "commons-bcel.jar"
5341
       #:source-dir "src/main/java"
5342
       ;; FIXME: requires org.openjdk.jmh.* and com.sun.jna.platform.win32 for tests
5343
       #:tests? #f))
5344
    (native-inputs
5345
     `(("java-junit" ,java-junit)
5346
       ("collections" ,java-commons-collections4)
5347
       ("lang3" ,java-commons-lang3)
5348
       ("io" ,java-commons-io)))
5349
    (home-page "https://commons.apache.org/proper/commons-bcel/")
5350
    (synopsis "")
5351
    (description "")
5352
    (license license:asl2.0)))
5353
5354
(define-public java-trove4j
5355
  (package
5356
    (name "java-trove4j")
5357
    (version "3.0.3")
5358
    (source (origin
5359
              (method url-fetch)
5360
              (uri (string-append "https://bitbucket.org/trove4j/trove/downloads/"
5361
                                  "trove-" version ".tar.gz"))
5362
              (sha256
5363
               (base32
5364
                "1hlvhaivyw880bld5l8cf2z0s33vn9bb84w0m5n025c7g8fdwhk2"))
5365
              (modules '((guix build utils)))
5366
              (snippet
5367
                `(begin
5368
                   ;; Delete bundled jar archives.
5369
                   (for-each delete-file (find-files "." ".*\\.jar"))
5370
                   #t))))
5371
    (build-system ant-build-system)
5372
    (native-inputs
5373
     `(("java-junit" ,java-junit)))
5374
    (arguments
5375
     `(#:test-target "test"
5376
       #:phases
5377
       (modify-phases %standard-phases
5378
         (replace 'install
5379
           (install-jars ".")))))
5380
    (home-page "")
5381
    (synopsis "")
5382
    (description "")
5383
    (license license:lgpl2.1+)))
5384
5385
(define-public java-trove4j-2
5386
  (package
5387
    (inherit java-trove4j)
5388
    (version "2.1.0")
5389
    (source (origin
5390
              (method url-fetch)
5391
              (uri (string-append "https://sourceforge.net/projects/trove4j/"
5392
                                  "files/trove/" version "/trove-" version ".tar.gz"))
5393
              (sha256
5394
               (base32
5395
                "0vkbgq20xina558vymq6gxwjw5svhxsncizh3p3wdq5fjcgrx4m5"))
5396
              (modules '((guix build utils)))
5397
              (snippet
5398
                `(begin
5399
                   ;; Delete bundled jar archives.
5400
                   (for-each delete-file (find-files "." ".*\\.jar"))
5401
                   #t))))))
5402
5403
(define-public java-trove4j-intellij
5404
  (package
5405
    (inherit java-trove4j)
5406
    (version "1.0-20191502")
5407
    (source (origin
5408
              (method git-fetch)
5409
              (uri (git-reference
5410
                     (url "https://github.com/JetBrains/intellij-deps-trove4j")
5411
                     (commit "5967df06f16dacca5a37493ae464f14696dc6f9d")))
5412
              (file-name (git-file-name "java-trove4j" version))
5413
              (sha256
5414
               (base32
5415
                "00swjb2yq85k6sh5hq1nfixv20hjnza4hd1b8frr3fb53ibsry4s"))
5416
              (modules '((guix build utils)))
5417
              (snippet
5418
                `(begin
5419
                   ;; Delete bundled jar archives.
5420
                   (for-each delete-file (find-files "." ".*\\.jar"))
5421
                   #t))))
5422
    (arguments
5423
     `(#:jar-name "trove.jar"
5424
       #:tests? #f
5425
       #:source-dir "core/src/main/java"
5426
       #:phases
5427
       (modify-phases %standard-phases
5428
         (add-before 'build 'generate
5429
           (lambda _
5430
             (with-directory-excursion "generator/src/main/java"
5431
               (invoke "javac" "gnu/trove/generate/Generate.java"))
5432
             (invoke "java" "-cp" "generator/src/main/java"
5433
                     "gnu.trove.generate.Generate"
5434
                     "core/src/main/templates" "core/src/main/java")))
5435
         (add-before 'build 'utf-to-iso
5436
           (lambda _
5437
             (substitute* "build.xml"
5438
               (("<javac ") "<javac encoding=\"iso-8859-1\" "))
5439
             #t)))))))
5440
5441
(define-public java-imagescalr
5442
  (package
5443
    (name "java-imagescalr")
5444
    (version "4.2")
5445
    (source (origin
5446
              (method git-fetch)
5447
              (uri (git-reference
5448
                     (url "https://github.com/rkalla/imgscalr")
5449
                     (commit (string-append version "-release"))))
5450
              (file-name (git-file-name name version))
5451
              (sha256
5452
               (base32
5453
                "1vbfx2wa9lavagmg2pgy5jq4m7msp1dkc4pwr7vv5a746fx24pg9"))))
5454
    (build-system ant-build-system)
5455
    (arguments
5456
     `(#:tests? #f; no tests
5457
       #:phases
5458
       (modify-phases %standard-phases
5459
         (replace 'install
5460
           (install-jars ".")))))
5461
    (home-page "")
5462
    (synopsis "")
5463
    (description "")
5464
    (license license:asl2.0)))
5465
5466
(define-public java-jlex
5467
  (package
5468
    (name "java-jlex")
5469
    (version "1.2.6")
5470
    (source (origin
5471
              (method url-fetch)
5472
              (uri (string-append "https://www.cs.princeton.edu/~appel/modern/"
5473
                                  "java/JLex/Archive/" version "/Main.java"))
5474
              (sha256
5475
               (base32
5476
                "1msblmsgzij3z9pwm7gff1q2cv1q802q23xsn0mrflrs7g7axsxf"))))
5477
    (build-system ant-build-system)
5478
    (arguments
5479
     `(#:tests? #f; no tests
5480
       #:phases
5481
       (modify-phases %standard-phases
5482
         (delete 'unpack)
5483
         (delete 'configure)
5484
         (replace 'build
5485
           (lambda* (#:key inputs #:allow-other-keys)
5486
             (mkdir "JLex")
5487
             (copy-file (assoc-ref inputs "source") "Main.java")
5488
             (invoke "javac" "Main.java" "-d" ".")
5489
             (apply invoke "jar" "cf" "jlex.jar" (find-files "." ".*.class"));"JLex/Main.class")
5490
             #t))
5491
         (replace 'install
5492
           (install-jars ".")))))
5493
    (home-page "https://jflex.de")
5494
    (synopsis "")
5495
    (description "")
5496
    (license license:bsd-3)))
5497
5498
(define %java-jflex-bootstrap
5499
  (package
5500
    (name "java-jflex")
5501
    (version "1.6.1")
5502
    (source (origin
5503
              (method url-fetch)
5504
              (uri (string-append "http://www.jflex.de/release/jflex-" version
5505
                                  ".tar.gz"))
5506
              (sha256
5507
               (base32
5508
                "1h7q2vhb4s42g4pqz5xxxliagprray7i9krr6hyaz1mjlx7gnycq"))))
5509
    (build-system trivial-build-system)
5510
    ;(arguments
5511
    ; `(#:tests? #f
5512
    ;   #:phases
5513
    ;   (modify-phases %standard-phases
5514
    ;     (delete 'build)
5515
    ;     (replace 'install
5516
    ;       (lambda* (#:key outputs #:allow-other-keys)
5517
    ;         (let ((java-dir (string-append (assoc-ref outputs "out") "/share/java")))
5518
    ;           (install-file (string-append "lib/jflex-" ,version ".jar")
5519
    ;                         java-dir)
5520
    ;           (install-file (string-append "lib/java-cup-11a.jar")
5521
    ;                         java-dir))
5522
    ;         #t)))))
5523
    (arguments
5524
     `(#:modules ((guix build utils))
5525
       #:builder (begin
5526
                   (use-modules (guix build utils))
5527
                   (let* ((source (assoc-ref %build-inputs "source"))
5528
                          (tar (string-append
5529
                                 (assoc-ref %build-inputs "tar")
5530
                                 "/bin/tar"))
5531
                          (gzip (assoc-ref %build-inputs "gzip"))
5532
                          (output (assoc-ref %outputs "out"))
5533
                          (java-dir (string-append output "/share/java")))
5534
                     (mkdir-p java-dir)
5535
                     (setenv "PATH" (string-append (getenv "PATH") ":" gzip "/bin"))
5536
                     (invoke tar "xf" source)
5537
                     (install-file "jflex-1.6.1/lib/jflex-1.6.1.jar" java-dir)
5538
                     (install-file "jflex-1.6.1/lib/java-cup-11a.jar" java-dir)
5539
                     #t))))
5540
    (native-inputs
5541
     `(("tar" ,tar)
5542
       ("gzip" ,gzip)))
5543
    (home-page "http://www.jflex.de")
5544
    (synopsis "")
5545
    (description "")
5546
    (license license:bsd-3)))
5547
5548
(define %java-cup-bootstrap
5549
  (package
5550
    (name "java-cup")
5551
    (version "11b-20160615")
5552
    (source (origin
5553
              (method url-fetch)
5554
              (uri (string-append "http://www2.cs.tum.edu/projects/cup/"
5555
                                  "releases/java-cup-bin-" version ".tar.gz"))
5556
              (sha256
5557
               (base32
5558
                "1k6ycm5bpg7r2z2jprdp54s8bvaxggdxk4qmvkjw3013i1bxc09z"))))
5559
    (build-system trivial-build-system)
5560
    (arguments
5561
     `(#:modules ((guix build utils))
5562
       #:builder (begin
5563
                   (use-modules (guix build utils))
5564
                   (let* ((source (assoc-ref %build-inputs "source"))
5565
                          (tar (string-append
5566
                                 (assoc-ref %build-inputs "tar")
5567
                                 "/bin/tar"))
5568
                          (gzip (assoc-ref %build-inputs "gzip"))
5569
                          (output (assoc-ref %outputs "out"))
5570
                          (java-dir (string-append output "/share/java")))
5571
                     (mkdir-p java-dir)
5572
                     (chdir java-dir)
5573
                     (setenv "PATH" (string-append (getenv "PATH") ":" gzip "/bin"))
5574
                     (invoke tar "xf" source)))))
5575
    (native-inputs
5576
     `(("tar" ,tar)
5577
       ("gzip" ,gzip)))
5578
    (home-page "http://www2.cs.tum.edu/projects/cup/")
5579
    (synopsis "")
5580
    (description "")
5581
    (license license:expat)))
5582
5583
(define-public java-jflex
5584
  (package
5585
    (name "java-jflex")
5586
    (version "1.6.1")
5587
    (source (origin
5588
              (method url-fetch)
5589
              (uri (string-append "http://www.jflex.de/release/jflex-" version
5590
                                  ".tar.gz"))
5591
              (sha256
5592
               (base32
5593
                "1h7q2vhb4s42g4pqz5xxxliagprray7i9krr6hyaz1mjlx7gnycq"))
5594
              (modules '((guix build utils)))
5595
              (snippet
5596
                `(begin
5597
                   ;; The first entry is a symlink to jflex-version
5598
                   (delete-file "../jflex")
5599
                   ;; Delete bundled jar archives.
5600
                   (for-each delete-file (find-files "." ".*\\.jar"))
5601
                   (chdir "..")
5602
                   (rename-file "jflex-1.6.1" "jflex")
5603
                   (chdir "jflex")
5604
                   #t))))
5605
    (build-system ant-build-system)
5606
    (arguments
5607
     `(#:test-target "test"
5608
       #:phases
5609
       (modify-phases %standard-phases
5610
         (replace 'install
5611
           (install-jars ".")))))
5612
    (native-inputs
5613
     `(("%java-jflex-bootstrap" ,%java-jflex-bootstrap)
5614
       ("java-junit" ,java-junit)))
5615
    (home-page "https://jflex.de")
5616
    (synopsis "")
5617
    (description "")
5618
    (license license:bsd-3)))
5619
5620
(define-public java-cup-runtime
5621
  (package
5622
    (name "java-cup-runtime")
5623
    (version "11b")
5624
    (source (origin
5625
              (method git-fetch)
5626
              (uri (git-reference
5627
                     (url "https://versioncontrolseidl.in.tum.de/parsergenerators/cup.git")
5628
                     (commit "fe729fe8c27441f046dab19135a38b9dde4c4e5e")))
5629
              (sha256
5630
               (base32
5631
                "09xigxm7b44hz79xhqpfykvjrk4q90p33j2l07w69izx9sn0y42b"))
5632
              (modules '((guix build utils)))
5633
              (snippet
5634
                '(begin ;; Delete bundled jar archives.
5635
                   (for-each delete-file (find-files "." ".*\\.jar"))
5636
                   (for-each delete-file (find-files "." ".*\\.tar.gz"))
5637
                   #t))))
5638
    (build-system ant-build-system)
5639
    (arguments
5640
     `(#:jar-name "cup-runtime.jar"
5641
       #:source-dir "src/java/java_cup/runtime"
5642
       #:tests? #f; no tests for runtime
5643
       #:phases
5644
       (modify-phases %standard-phases
5645
         (add-before 'configure 'remove-build-xml
5646
           (lambda _
5647
             (delete-file "build.xml"))))))
5648
    (home-page "http://www2.cs.tum.edu/projects/cup")
5649
    (synopsis "")
5650
    (description "")
5651
    (license license:expat))); http://www2.cs.tum.edu/projects/cup/licence.html
5652
5653
(define-public java-cup
5654
  (package
5655
    (inherit java-cup-runtime)
5656
    (name "java-cup")
5657
    (arguments
5658
     `(#:build-target "dist"
5659
       #:tests? #f; no test target
5660
       #:phases
5661
       (modify-phases %standard-phases
5662
         (add-before 'build 'fix-jflex
5663
           (lambda _
5664
             (substitute* "build.xml"
5665
               (("JFlex.ant") "jflex.ant"))
5666
             #t))
5667
         (add-before 'build 'add-lib
5668
           (lambda _
5669
             (mkdir-p "lib")))
5670
         (replace 'install
5671
           (install-jars ".")))))
5672
    (native-inputs
5673
     `(("%java-jflex-bootstrap" ,%java-jflex-bootstrap)
5674
       ("git" ,git)))
5675
    (home-page "http://www2.cs.tum.edu/projects/cup")
5676
    (synopsis "")
5677
    (description "")
5678
    (license license:expat))); http://www2.cs.tum.edu/projects/cup/licence.html
5679
5680
(define-public java-xalan
5681
  (package
5682
    (name "java-xalan")
5683
    (version "2.7.2")
5684
    (source (origin
5685
              (method url-fetch)
5686
              (uri (string-append "mirror://apache/xalan/xalan-j/source/xalan-j_"
5687
                                  (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
5688
                                  "-src.tar.gz"))
5689
              (sha256
5690
               (base32
5691
                "166vg9i11qzi0vbv09abfb50q8caq8wr6zrwg0cwqws9k394l62w"))
5692
              (modules '((guix build utils)))
5693
              (snippet
5694
                '(begin ;; Delete bundled jar archives.
5695
                   (for-each delete-file (find-files "." ".*\\.jar"))
5696
                   (for-each delete-file (find-files "." ".*\\.tar.gz"))
5697
                   #t))))
5698
    (build-system ant-build-system)
5699
    (arguments
5700
     `(#:jar-name "xalan.jar"
5701
       #:tests? #f)); no tests
5702
    (inputs
5703
     `(("java-commons-bcel" ,java-commons-bcel)
5704
       ("java-xerces" ,java-xerces)))
5705
    (native-inputs
5706
     `(("java-cup" ,java-cup)))
5707
    (home-page "")
5708
    (synopsis "")
5709
    (description "")
5710
    (license license:bsd-2)))
5711
5712
(define-public ant-commons-net
5713
  (package
5714
    (inherit ant)
5715
    (name "ant-commons-net")
5716
    (build-system ant-build-system)
5717
    (arguments
5718
     `(#:build-target "jars"
5719
       #:tests? #f; disabled for now
5720
       #:phases
5721
       (modify-phases %standard-phases
5722
         (add-before 'build 'copy
5723
           (lambda* (#:key inputs #:allow-other-keys)
5724
             (for-each (lambda (file) (copy-file file "lib/optional/commons-net.jar"))
5725
                       (find-files (string-append (assoc-ref inputs "java-commons-net") "/share") ".*.jar"))
5726
             #t))
5727
         (replace 'install
5728
           (lambda* (#:key outputs #:allow-other-keys)
5729
             (install-file "build/lib/ant-commons-net.jar"
5730
                           (string-append (assoc-ref outputs "out") "/share/java")))))))
5731
    (inputs
5732
     `(("java-commons-net" ,java-commons-net)))))
5733
5734
(define-public ant-apache-oro
5735
  (package
5736
    (inherit ant)
5737
    (name "ant-apache-oro")
5738
    (build-system ant-build-system)
5739
    (arguments
5740
     `(#:build-target "jars"
5741
       #:tests? #f; disabled for now
5742
       #:phases
5743
       (modify-phases %standard-phases
5744
         (add-before 'build 'copy
5745
           (lambda* (#:key inputs #:allow-other-keys)
5746
             (for-each (lambda (file) (copy-file file "lib/optional/apache-oro.jar"))
5747
                       (find-files (string-append (assoc-ref inputs "java-jakarta-oro") "/share") ".*.jar"))
5748
             #t))
5749
         (replace 'install
5750
           (lambda* (#:key outputs #:allow-other-keys)
5751
             (install-file "build/lib/ant-apache-oro.jar"
5752
                           (string-append (assoc-ref outputs "out") "/share/java")))))))
5753
    (inputs
5754
     `(("java-jakarta-oro" ,java-jakarta-oro)))))
5755
5756
(define-public ant-apache-regexp
5757
  (package
5758
    (inherit ant)
5759
    (name "ant-apache-regexp")
5760
    (build-system ant-build-system)
5761
    (arguments
5762
     `(#:build-target "jars"
5763
       #:tests? #f; disabled for now
5764
       #:phases
5765
       (modify-phases %standard-phases
5766
         (add-before 'build 'copy
5767
           (lambda* (#:key inputs #:allow-other-keys)
5768
             (for-each (lambda (file) (copy-file file "lib/optional/apache-regexp.jar"))
5769
                       (find-files (string-append (assoc-ref inputs "java-jakarta-regexp") "/share") ".*.jar"))
5770
             #t))
5771
         (replace 'install
5772
           (lambda* (#:key outputs #:allow-other-keys)
5773
             (install-file "build/lib/ant-apache-regexp.jar"
5774
                           (string-append (assoc-ref outputs "out") "/share/java")))))))
5775
    (inputs
5776
     `(("java-jakarta-regexp" ,java-jakarta-regexp)))))
5777
5778
(define-public ant-jsch
5779
  (package
5780
    (inherit ant)
5781
    (name "ant-jsch")
5782
    (build-system ant-build-system)
5783
    (arguments
5784
     `(#:build-target "jars"
5785
       #:tests? #f; disabled for now
5786
       #:phases
5787
       (modify-phases %standard-phases
5788
         (add-before 'build 'copy
5789
           (lambda* (#:key inputs #:allow-other-keys)
5790
             (for-each (lambda (file) (copy-file file "lib/optional/jsch.jar"))
5791
                       (find-files (string-append (assoc-ref inputs "java-jsch") "/share") ".*.jar"))
5792
             #t))
5793
         (replace 'install
5794
           (lambda* (#:key outputs #:allow-other-keys)
5795
             (install-file "build/lib/ant-jsch.jar"
5796
                           (string-append (assoc-ref outputs "out") "/share/java")))))))
5797
    (inputs
5798
     `(("java-jsch" ,java-jsch)))))
5799
5800
(define-public ant-junit-tests
5801
  (package
5802
    (inherit ant)
5803
    (name "ant-junit-tests")
5804
    (build-system ant-build-system)
5805
    (arguments
5806
     `(#:jar-name "ant-junit-tests.jar"
5807
       #:tests? #f; disabled for now
5808
       #:source-dir "src/tests/junit"))
5809
    (inputs
5810
     `(("java-junit" ,java-junit)
5811
       ("java-hamcrest-core" ,java-hamcrest-core)
5812
       ("ant-commons-net" ,ant-commons-net)
5813
       ("java-jsch" ,java-jsch)
5814
       ("ant-jsch" ,ant-jsch)
5815
       ("java-jakarta-oro" ,java-jakarta-oro)
5816
       ("ant-apache-oro" ,ant-apache-oro)
5817
       ("java-jakarta-regexp" ,java-jakarta-regexp)
5818
       ("ant-apache-regexp" ,ant-apache-regexp)
5819
       ("java-commons-net" ,java-commons-net)))))
5820
5821
(define-public ant-antlr
5822
  (package
5823
    (inherit ant)
5824
    (name "ant-antlr")
5825
    (build-system ant-build-system)
5826
    (arguments
5827
     `(#:build-target "jars"
5828
       #:tests? #f; disabled for now
5829
       ;#:make-flags
5830
       ;(list (string-append "-Dant.install=" (assoc-ref %outputs "out")))
5831
       #:phases
5832
       (modify-phases %standard-phases
5833
         (add-before 'build 'copy
5834
           (lambda* (#:key inputs #:allow-other-keys)
5835
             (for-each (lambda (file) (begin (display ">") (display file) (newline) (copy-file file "lib/optional/antlr.jar")))
5836
                       (find-files (string-append (assoc-ref inputs "antlr2") "/share") ".*.jar"))
5837
             #t))
5838
         (replace 'install
5839
           (lambda* (#:key outputs #:allow-other-keys)
5840
             (install-file "build/lib/ant-antlr.jar"
5841
                           (string-append (assoc-ref outputs "out") "/share/java")))))))
5842
    (inputs
5843
     `(("antlr2" ,antlr2)))))
5844
5845
(define-public java-json
5846
  (package
5847
    (name "java-json")
5848
    (version "1.1.0-M2")
5849
    (source (origin
5850
              (method url-fetch)
5851
              (uri (string-append "https://repo1.maven.org/maven2/javax/json/"
5852
                                  "javax.json-api/" version "/javax.json-api-"
5853
                                  version "-sources.jar"))
5854
              (file-name (string-append name "-" version ".jar"))
5855
              (sha256
5856
               (base32
5857
                "0gam8w52xjbmfc1inviyajk36jnj3lg4bzwhw05iq52kadycy6v0"))))
5858
    (build-system ant-build-system)
5859
    (arguments
5860
     `(#:jar-name (string-append ,name "-" ,version ".jar")
5861
       #:tests? #f; no tests
5862
       #:source-dir "src"
5863
       #:phases
5864
       (modify-phases %standard-phases
5865
         (add-after 'unpack 'remove-module-info
5866
           (lambda _
5867
             (format #t "~a\n" (getcwd))
5868
             (delete-file "src/module-info.java"))))))
5869
    (home-page "")
5870
    (synopsis "")
5871
    (description "")
5872
    (license license:asl2.0)))
5873
5874
;
5875
;;; Requires gradle.
5876
;(define-public android-anysoft-keyboard
5877
;  (package
5878
;    (name "android-anysoft-keyboard")
5879
;    (version "1.8-r9")
5880
;    (source (origin
5881
;              (method url-fetch)
5882
;              (uri (string-append "https://github.com/AnySoftKeyboard/"
5883
;                                  "AnySoftKeyboard/archive/" version ".tar.gz"))
5884
;              (file-name (string-append name "-" version ".tar.gz"))
5885
;              (sha256
5886
;               (base32
5887
;                "1mrin9mw1rs23d25v8yx4jprx7j05zir6756sqvk4myxbkcp8mag"))))
5888
;    (build-system ant-build-system)
5889
;    (home-page "https://anysoftkeyboard.github.io/")
5890
;    (synopsis "Alternative on-screen keyboard for multiple languages")
5891
;    (description "Alternative on-screen keyboard for multiple languages.")
5892
;    (license license:asl2.0)))
5893
5894
(define-public java-batik
5895
  (package
5896
    (name "java-batik")
5897
    (version "1.12")
5898
    (source (origin
5899
              (method url-fetch)
5900
              (uri (string-append "mirror://apache/xmlgraphics/batik/source/"
5901
                                  "batik-src-" version ".tar.gz"))
5902
              (sha256
5903
               (base32
5904
                "1g68mh5f57ap7827zb5y96ic587hf351f892fk80x2750drnw8zi"))))
5905
    (build-system ant-build-system)
5906
    (arguments
5907
     `(#:test-target "regard"; FIXME: no test is actually run
5908
       #:build-target "all-jar"
5909
       #:phases
5910
       (modify-phases %standard-phases
5911
         (add-before 'check 'remove-failing
5912
           (lambda _
5913
             ;; This file looks for w3c.dom.Window, but it has been moved to
5914
             ;; org.apache.batik.w3c.dom.Window.
5915
             (delete-file "samples/tests/resources/java/sources/com/untrusted/script/UntrustedScriptHandler.java")
5916
             #t))
5917
         (replace 'install
5918
           (lambda* (#:key outputs #:allow-other-keys)
5919
             (let ((dir (string-append (assoc-ref outputs "out") "/share/java/")))
5920
               (mkdir-p dir)
5921
               (copy-file (string-append "batik-" ,version "/lib/batik-all-" ,version ".jar")
5922
                          (string-append dir "batik-all.jar"))))))))
5923
    (inputs
5924
     `(("java-xmlgraphics-commons" ,java-xmlgraphics-commons)))
5925
    (native-inputs
5926
     `(("java-junit" ,java-junit)))
5927
    (home-page "https://xmlgraphics.apache.org/batik")
5928
    (synopsis "")
5929
    (description "")
5930
    (license license:asl2.0)))
5931
5932
(define-public java-batik-1.7
5933
  (package
5934
    (inherit java-batik)
5935
    (name "java-batik")
5936
    (version "1.7")
5937
    (source (origin
5938
              (method url-fetch)
5939
              (uri (string-append "mirror://apache/xmlgraphics/batik/source/"
5940
                                  "batik-src-" version ".zip"))
5941
              (sha256
5942
               (base32
5943
                "1zbrffb8xrddb41sn8fzq40wxc5i8177cl9nm0gmd5x78csmkskb"))))
5944
    (native-inputs
5945
     (append (package-native-inputs java-batik)
5946
             `(("unzip" ,unzip))))
5947
    (arguments
5948
     `(#:test-target "regard"; FIXME: no test is actually run
5949
       #:build-target "all-jar"
5950
       #:phases
5951
       (modify-phases %standard-phases
5952
         (add-before 'check 'remove-failing
5953
           (lambda _
5954
             ;; This file looks for w3c.dom.Window, but it has been moved to
5955
             ;; org.apache.batik.w3c.dom.Window.
5956
             (delete-file "samples/tests/resources/java/sources/com/untrusted/script/UntrustedScriptHandler.java")
5957
             #t))
5958
         (replace 'install
5959
           (lambda* (#:key outputs #:allow-other-keys)
5960
             (let ((dir (string-append (assoc-ref outputs "out") "/share/java/")))
5961
               (mkdir-p dir)
5962
               (copy-file (string-append "batik-" ,version "/lib/batik-all.jar")
5963
                          (string-append dir "batik-all.jar"))))))))))
5964
5965
(define-public java-pdfbox-fontbox
5966
  (package
5967
    (name "java-pdfbox-fontbox")
5968
    (version "2.0.19")
5969
    (source (origin
5970
              (method url-fetch)
5971
              (uri (string-append "mirror://apache/pdfbox/" version "/pdfbox-"
5972
                                  version "-src.zip"))
5973
              (sha256
5974
               (base32
5975
                "0chf5b3ppi0bbx1sa14bnv7aq4nk0hs966mjqga0j4lzjdsz73xf"))))
5976
    (build-system ant-build-system)
5977
    (arguments
5978
     `(#:jar-name "fontbox.jar"
5979
       #:source-dir "src/main/java"
5980
       #:test-dir "src/test"
5981
       #:test-exclude
5982
       (list
5983
         "**/Abstract*.java"
5984
         ;; Require downloading fonts
5985
         "**/CFFParserTest.java"
5986
         "**/TTFSubsetterTest.java")
5987
       #:phases
5988
       (modify-phases %standard-phases
5989
         (add-before 'build 'copy-resources
5990
           (lambda _
5991
             (copy-recursively "src/main/resources" "build/classes")
5992
             #t))
5993
         (add-before 'configure 'chdir
5994
           (lambda _
5995
             (chdir "fontbox")
5996
             #t)))))
5997
    (inputs
5998
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)))
5999
    (native-inputs
6000
     `(("java-hamcrest-core" ,java-hamcrest-core)
6001
       ("java-junit" ,java-junit)
6002
       ("unzip" ,unzip)))
6003
    (home-page "https://xmlgraphics.apache.org")
6004
    (synopsis "")
6005
    (description "")
6006
    (license license:asl2.0)))
6007
6008
(define-public java-pdfbox
6009
  (package
6010
    (inherit java-pdfbox-fontbox)
6011
    (name "java-pdfbox")
6012
    (arguments
6013
     `(#:jar-name "pdfbox.jar"
6014
       #:source-dir "src/main/java"
6015
       #:test-dir "src/test"
6016
       #:tests? #f; can't seem to find some test files?
6017
       #:test-exclude
6018
       (list
6019
         "**/Abstract*.java"
6020
         ;; Require network
6021
         "**/MergeAcroFormsTest.java"
6022
         "**/MergeAnnotationsTest.java"
6023
         "**/PDButtonTest.java"
6024
         ;; Require downloaded resources
6025
         "**/PDFMergerUtilityTest.java"
6026
         "**/PDStructureElementTest.java"
6027
         "**/PDFontTest.java"
6028
         ;; Can't load image
6029
         "**/LosslessFactoryTest.java"
6030
         ;; Unknown failure
6031
         "**/CCITTFactoryTest.java")
6032
       #:phases
6033
       (modify-phases %standard-phases
6034
         (add-before 'build 'copy-resources
6035
           (lambda _
6036
             (copy-recursively "src/main/resources" "build/classes")
6037
             (copy-recursively "src/test/resources" "build/test-classes")
6038
             (mkdir-p "target/pdfs")
6039
             #t))
6040
         (add-before 'configure 'chdir
6041
           (lambda _
6042
             (chdir "pdfbox")
6043
             #t)))))
6044
    (inputs
6045
     `(("java-bouncycastle" ,java-bouncycastle)
6046
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
6047
       ("java-diff-utils" ,java-diff-utils)
6048
       ("java-pdfbox-fontbox" ,java-pdfbox-fontbox)))))
6049
6050
(define-public java-fop
6051
  (package
6052
    (name "java-fop")
6053
    (version "2.4")
6054
    (source (origin
6055
              (method url-fetch)
6056
              (uri (string-append "mirror://apache/xmlgraphics/fop/source/"
6057
                                  "fop-" version "-src.tar.gz"))
6058
              (sha256
6059
               (base32
6060
                "11ih8hlqgmkrnmygfwfqry8npjbqdrr1pfilla9a8s293hxk4sqx"))))
6061
              ;(modules '((guix build utils)))
6062
              ;(snippet
6063
              ; `(begin
6064
              ;    (for-each delete-file (find-files "." ".*.jar$"))
6065
              ;    #t))))
6066
    (build-system ant-build-system)
6067
    (arguments
6068
     `(#:build-target "jar-main"
6069
       #:test-target "junit"
6070
       #:tests? #f; some fail
6071
       #:phases
6072
       (modify-phases %standard-phases
6073
         (add-before 'configure 'chdir
6074
           (lambda _
6075
             ;; FIXME: need dependencies
6076
             ;(for-each delete-file
6077
             ;          (find-files "." ".*.jar"))
6078
             (chdir "fop")
6079
             (substitute* "build.xml"
6080
               (("<path id=\"libs-build-classpath\">")
6081
                "<path id=\"libs-build-classpath\"><pathelement location=\"${env.CLASSPATH}\" />")
6082
               (("TestCase.class\"/>")
6083
                "TestCase.class\" excludes=\"**/IFTestCase.class **/*HyphenationLayoutTestCase.class\"/>")
6084
               (("<fail><condition><or>"); don't fail after all tests actually passed
6085
                "<fail><condition><and>")
6086
               (("</not></or></condition>")
6087
                "</not></and></condition>"))))
6088
         (replace 'install
6089
           (lambda* (#:key outputs #:allow-other-keys)
6090
             (let* ((out (assoc-ref outputs "out"))
6091
                    (lib (string-append out "/share/java/"))
6092
                    (bin (string-append out "/bin/"))
6093
                    (etc (string-append out "/etc")))
6094
               (mkdir-p lib)
6095
               (mkdir-p bin)
6096
               (mkdir-p etc)
6097
               (copy-file "build/fop.jar"
6098
                          (string-append lib "fop.jar"))
6099
               ;(copy-file "build/fop-hyph.jar"
6100
               ;           (string-append lib "fop-hyph.jar"))
6101
               ;(copy-file "build/fop-sandbox.jar"
6102
               ;           (string-append lib "fop-sandbox.jar"))
6103
               (copy-file "fop"
6104
                          (string-append bin "fop"))
6105
               (chmod (string-append bin "fop") #o755)
6106
               (substitute* (string-append bin "fop")
6107
                 (("/etc/fop.conf")
6108
                  (string-append etc "fop.conf")))
6109
               (with-output-to-file (string-append etc "fop.conf")
6110
                 (lambda _
6111
                   (display
6112
                     (string-append
6113
                       "FOP_HOME=\"" lib "\"\n"
6114
                       "CLASSPATH=\"$CLASSPATH:$FOP_HOME/fop.jar\"\n"
6115
                       "CLASSPATH=\"$CLASSPATH:" (getenv "CLASSPATH") "\""))))))))))
6116
    (home-page "https://xmlgraphics.apache.org/fop")
6117
    (inputs
6118
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
6119
       ("java-commons-io" ,java-commons-io)
6120
       ("java-xmlgraphics-commons" ,java-xmlgraphics-commons)
6121
       ("java-tomcat" ,java-tomcat)
6122
       ("java-pdfbox-fontbox" ,java-pdfbox-fontbox)
6123
       ("java-pdfbox" ,java-pdfbox)
6124
       ("java-batik" ,java-batik)))
6125
       ;("java-avalon-framework-api" ,java-avalon-framework-api)
6126
       ;("java-avalon-logkit" ,java-avalon-logkit)))
6127
    (native-inputs
6128
     `(("java-junit" ,java-junit)))
6129
    (synopsis "")
6130
    (description "")
6131
    (license license:asl2.0)))
6132
6133
(define-public java-fop-util
6134
  (package
6135
    (inherit java-fop)
6136
    (name "java-fop-util")
6137
    (arguments
6138
     `(#:jar-name "fop-util.jar"
6139
       #:source-dir "fop-util/src/main/java"
6140
       #:tests? #f)); no tests
6141
    (inputs
6142
     `(("java-commons-io" ,java-commons-io)
6143
       ("java-xmlgraphics-commons" ,java-xmlgraphics-commons)
6144
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)))))
6145
6146
(define-public java-fop-events
6147
  (package
6148
    (inherit java-fop)
6149
    (name "java-fop-events")
6150
    (arguments
6151
     `(#:jar-name "fop-events.jar"
6152
       #:source-dir "fop-events/src/main/java"
6153
       #:test-dir "fop-events/src/test"))
6154
    (inputs
6155
     `(("java-commons-io" ,java-commons-io)
6156
       ("java-xmlgraphics-commons" ,java-xmlgraphics-commons)
6157
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
6158
       ("java-fop-util" ,java-fop-util)))))
6159
6160
;;
6161
;;
6162
;;
6163
;; let's try to build maven :)
6164
;; This was mostly adapted from https://gitlab.com/htgoebel/guix/blob/WIP-maven/gnu/packages/java.scm
6165
;;
6166
;;
6167
;;
6168
6169
(define* (codehaus-plexus-origin projname version hash
6170
                                 #:optional (prefix "plexus-"))
6171
  (let* ((projname (string-append prefix projname))
6172
         (url (string-append "https://github.com/codehaus-plexus/" projname
6173
                             "/archive/" projname "-" version ".tar.gz")))
6174
    (origin
6175
      (method url-fetch)
6176
      (uri url)
6177
      (sha256 (base32 hash)))))
6178
6179
(define-public java-jackrabbit-core
6180
  (package
6181
    (name "java-jackrabbit-core")
6182
    (version "2.16.0")
6183
    (source (origin
6184
              (method url-fetch)
6185
              (uri (string-append "http://apache.crihan.fr/dist/jackrabbit/"
6186
                                  version "/jackrabbit-" version "-src.zip"))
6187
              (sha256
6188
               (base32
6189
                "1vcryb0p4937nlaiicyqfia6n46jqd71nwch3d9a0wd1ma14h0vg"))))
6190
    (build-system ant-build-system)
6191
    (arguments
6192
     `(#:jar-name "jackrabbit.jar"
6193
       #:source-dir "jackrabbit-core/src/main/java"
6194
       #:test-dir "jackrabbit-core/src/test"))
6195
    (native-inputs
6196
     `(("unzip" ,unzip)))
6197
    (home-page "https://jackrabbit.apache.org/jcr")
6198
    (synopsis "")
6199
    (description "")
6200
    (license license:asl2.0)))
6201
6202
(define-public java-jackrabbit-webdav
6203
  (package
6204
    (inherit java-jackrabbit-core)
6205
    (name "java-jackrabbit-webdav")
6206
    (arguments
6207
     `(#:jar-name "jackrabbit-webdav.jar"
6208
       #:source-dir "jackrabbit-webdav/src/main/java"
6209
       #:test-dir "jackrabbit-webdav/src/test"
6210
       #:tests? #f; FIXME: either use servlet 2.2 or fix tests
6211
       #:phases
6212
       (modify-phases %standard-phases
6213
         (add-before 'build 'fix-servlet
6214
           (lambda _
6215
             ;; jackrabbit is built for servlet 2.2, but we have 3.0
6216
             (substitute* "jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java"
6217
               (("import javax.servlet.RequestDispatcher;")
6218
                "import javax.servlet.RequestDispatcher;
6219
import javax.servlet.http.Part;
6220
import javax.servlet.http.HttpServletResponse;
6221
import javax.servlet.AsyncContext;
6222
import javax.servlet.DispatcherType;
6223
import javax.servlet.ServletRequest;
6224
import javax.servlet.ServletResponse;
6225
import javax.servlet.ServletContext;
6226
import javax.servlet.ServletException;
6227
import java.util.Collection;")
6228
               (("^}") "public Part getPart(String name) throws IOException,
6229
                       ServletException {
6230
    return httpRequest.getPart(name);
6231
  }
6232
  public Collection<Part> getParts() throws IOException, ServletException {
6233
    return httpRequest.getParts();
6234
  }
6235
  public void logout() throws ServletException {
6236
    httpRequest.logout();
6237
  }
6238
  public void login(String username, String password) throws ServletException {
6239
    httpRequest.login(username, password);
6240
  }
6241
  public boolean authenticate(HttpServletResponse response) throws IOException,
6242
      ServletException {
6243
    return httpRequest.authenticate(response);
6244
  }
6245
  public DispatcherType getDispatcherType() {
6246
    return httpRequest.getDispatcherType();
6247
  }
6248
  public AsyncContext getAsyncContext() {
6249
    return httpRequest.getAsyncContext();
6250
  }
6251
  public boolean isAsyncSupported() {
6252
    return httpRequest.isAsyncSupported();
6253
  }
6254
  public boolean isAsyncStarted() {
6255
    return httpRequest.isAsyncStarted();
6256
  }
6257
  public AsyncContext startAsync(ServletRequest request, ServletResponse response) {
6258
    return httpRequest.startAsync(request, response);
6259
  }
6260
  public AsyncContext startAsync() {
6261
    return httpRequest.startAsync();
6262
  }
6263
  public ServletContext getServletContext() {
6264
    return httpRequest.getServletContext();
6265
  }
6266
  public int getLocalPort() throws IOException {
6267
    return httpRequest.getLocalPort();
6268
  }
6269
  public String getLocalAddr() throws IOException {
6270
    return httpRequest.getLocalAddr();
6271
  }
6272
  public String getLocalName() throws IOException {
6273
    return httpRequest.getLocalName();
6274
  }
6275
  public int getRemotePort() {
6276
    return httpRequest.getRemotePort();
6277
  }
6278
}"))
6279
             (substitute* "jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java"
6280
               (("import java.util.Locale;")
6281
                "import java.util.Collection;\nimport java.util.Locale;")
6282
               (("^}")
6283
                "public Collection<String> getHeaderNames() {
6284
    return httpResponse.getHeaderNames();
6285
  }
6286
  public Collection<String> getHeaders(String name) {
6287
    return httpResponse.getHeaders(name);
6288
  }
6289
  public String getHeader(String name) {
6290
    return httpResponse.getHeader(name);
6291
  }
6292
  public int getStatus() {
6293
    return httpResponse.getStatus();
6294
  }
6295
  public void setCharacterEncoding(String encoding) {
6296
    httpResponse.setCharacterEncoding(encoding);
6297
  }
6298
  public String getContentType() {
6299
    return httpResponse.getContentType();
6300
  }
6301
}"))
6302
             #t)))))
6303
    (inputs
6304
     `(("java-slf4j-api" ,java-slf4j-api)
6305
       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
6306
       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
6307
       ("java-osgi-annotation" ,java-osgi-annotation)
6308
       ("java-classpathx-servletapi" ,java-classpathx-servletapi)))
6309
    (native-inputs
6310
     `(("unzip" ,unzip)
6311
       ("java-junit" ,java-junit)))))
6312
6313
(define-public bazel
6314
  (package
6315
    (name "bazel")
6316
    (version "0.10.0")
6317
    (source (origin
6318
              (method url-fetch)
6319
              ;(uri (string-append "https://github.com/bazelbuild/bazel/archive/"
6320
              ;                    version ".tar.gz"))
6321
              ;; FIXME: This contains build artifacts generated by running bazel.
6322
              (uri (string-append "https://github.com/bazelbuild/bazel/releases/"
6323
                                  "download/" version "/bazel-" version "-dist.zip"))
6324
              (file-name (string-append name "-" version ".zip"))
6325
              ;; TODO: remove third_party/
6326
              (sha256
6327
               (base32
6328
                ;"0a1n20n4r2z852i3ik3c7bmaiiikny5i7r82p0rkcvy6wdsqzclp"))))
6329
                "0j4mgmrivpkk8id0h9sshm58igaaj555bzp5pjcz8kdcma67kq27"))))
6330
    (build-system ant-build-system)
6331
    (arguments
6332
     `(#:phases
6333
       (modify-phases %standard-phases
6334
         (add-before 'unpack 'subdir
6335
           (lambda _
6336
             (mkdir "src")
6337
             (chdir "src")))
6338
         (add-before 'patch-source-shebangs 'chdir
6339
           (lambda _
6340
             (chdir "..")))
6341
         (replace 'build
6342
           (lambda _
6343
             (invoke "./compile.sh"))))))
6344
    (native-inputs
6345
     `(("unzip" ,unzip)
6346
       ("which" ,which)))
6347
    (home-page "https://bazel.build")
6348
    (synopsis "Build system")
6349
    (description "")
6350
    (license license:asl2.0)))
6351
6352
(define-public java-procyon
6353
  (package
6354
    (name "java-procyon")
6355
    (version "0.5.30+1")
6356
    (source (origin
6357
              (method hg-fetch)
6358
              (uri (hg-reference
6359
                     (url "https://bitbucket.org/mstrobel/procyon")
6360
                     (changeset "1aa0bd29339b8782b7e9ffafe367b94ee15a7039")))
6361
              (sha256
6362
               (base32
6363
                "0khihmkmv4lrx67mp2s6h5ifd5sk7hf0adfp64ybiq4c3w7786b0"))))
6364
    (build-system ant-build-system)
6365
    (arguments
6366
     `(#:jar-name "procyon.jar"
6367
       #:source-dir
6368
       (string-append "Procyon.CompilerTools/src/main/java:"
6369
                      "Procyon.Core/src/main/java:"
6370
                      "Procyon.Decompiler/src/main/java:"
6371
                      "Procyon.Expressions/src/main/java:"
6372
                      "Procyon.Reflection/src/main/java")
6373
       ;; Tests in CompilerTools depend on .class files, no tests in Core or Decompiler.
6374
       ;; Tests in Expressions and Reflections, but build.xml doesn't support tests
6375
       ;; in more than one dir.
6376
       #:tests? #f))
6377
    (inputs
6378
     `(("java-jcommander" ,java-jcommander)))
6379
    (native-inputs
6380
     `(("java-junit" ,java-junit)))
6381
    (home-page "")
6382
    (synopsis "")
6383
    (description "")
6384
    (license license:expat)))
6385
6386
(define-public java-modello-plugins-xsd
6387
  (package
6388
    (inherit java-modello-core)
6389
    (name "java-modello-plugins-xsd")
6390
    (arguments
6391
     `(#:jar-name "modello-plugins-xsd.jar"
6392
       #:source-dir "modello-plugins/modello-plugin-xsd/src/main/java"
6393
       #:test-dir "modello-plugins/modello-plugin-xsd/src/test"
6394
       #:tests? #f; Require some test classes from java-modello
6395
       #:phases
6396
       (modify-phases %standard-phases
6397
         (add-before 'build 'copy-resources
6398
           (lambda _
6399
             (mkdir-p "build/classes")
6400
             (copy-recursively
6401
               "modello-plugins/modello-plugin-xsd/src/main/resources"
6402
               "build/classes")
6403
             #t)))))
6404
    (inputs
6405
     `(("java-modello-core" ,java-modello-core)
6406
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
6407
       ,@(package-inputs java-modello-core)))
6408
    (native-inputs
6409
     `(("java-modello-test" ,java-modello-test)
6410
       ,@(package-native-inputs java-modello-core)))
6411
    (synopsis "Modello XSD Plugin")
6412
    (description "Modello XSD Plugin generates an XML Schema from the model to
6413
be able to validate XML content.")))
6414
6415
(define-public java-jtidy
6416
  (package
6417
    (name "java-jtidy")
6418
    (version "r938")
6419
    (source (origin
6420
              (method url-fetch)
6421
              (uri (string-append "mirror://sourceforge/jtidy/JTidy/r938/jtidy-r938-sources.zip"))
6422
              (sha256
6423
               (base32
6424
                "19kszpqjihdfacxwk0bzv8ajwbs86k1qb9j67vzg8lwvxcxdkmsh"))))
6425
    (build-system ant-build-system)
6426
    (arguments
6427
     `(#:tests? #f; no tests
6428
       #:phases
6429
       (modify-phases %standard-phases
6430
         (add-before 'build 'chdir
6431
           (lambda _
6432
             (chdir "..")
6433
             #t))
6434
         (replace 'install
6435
           (install-jars ".")))))
6436
    (native-inputs
6437
     `(("unzip" ,unzip)))
6438
    (home-page "")
6439
    (synopsis "")
6440
    (description "")
6441
    (license license:asl2.0)))
6442
6443
(define-public java-jctools-core
6444
  (package
6445
    (name "java-jctools-core")
6446
    (version "2.1.2")
6447
    (source (origin
6448
              (method url-fetch)
6449
              (uri (string-append "https://github.com/JCTools/JCTools/archive/v"
6450
                                  version ".tar.gz"))
6451
              (file-name (string-append name "-" version ".tar.gz"))
6452
              (sha256
6453
               (base32
6454
                "16vqznf6ikzvii72r13h02vcbqfp5kl0fcw2cfhp52fzk3pmpsi2"))))
6455
    (build-system ant-build-system)
6456
    (arguments
6457
     `(#:jar-name "jctools-core.jar"
6458
       #:source-dir "jctools-core/src/main/java"
6459
       #:test-dir "jctools-core/src/test"
6460
       ;; Require com.google.common.collect.testing (guava?)
6461
       #:tests? #f))
6462
    (native-inputs
6463
     `(("java-guava" ,java-guava)
6464
       ("java-hamcrest-core" ,java-hamcrest-core)
6465
       ("java-junit" ,java-junit)))
6466
    (home-page "https://jctools.github.io/JCTools")
6467
    (synopsis "")
6468
    (description "")
6469
    (license license:asl2.0)))
6470
6471
(define-public java-log4j-api-for-netty
6472
  (package
6473
    (inherit java-log4j-api)
6474
    (version "2.6.2")
6475
    (source (origin
6476
              (method url-fetch)
6477
              (uri (string-append "mirror://apache/logging/log4j/" version
6478
                                  "/apache-log4j-" version "-src.tar.gz"))
6479
              (sha256
6480
               (base32
6481
                "1ri58x5l451ngz3p8shn4r7kb69vg0pkr9jb817952s9jbskwws9"))))))
6482
6483
(define-public java-log4j-core-for-netty
6484
  (package
6485
    (inherit java-log4j-api-for-netty)
6486
    (name "java-log4j-core")
6487
    (inputs
6488
     `(("java-osgi-core" ,java-osgi-core)
6489
       ("java-hamcrest-core" ,java-hamcrest-core)
6490
       ("java-log4j-api" ,java-log4j-api-for-netty)
6491
       ("java-mail" ,java-mail)
6492
       ("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
6493
       ("java-lmax-disruptor" ,java-lmax-disruptor)
6494
       ("java-kafka" ,java-kafka-clients)
6495
       ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
6496
       ("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
6497
       ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
6498
       ("java-fasterxml-jackson-databind" ,java-fasterxml-jackson-databind)
6499
       ("java-fasterxml-jackson-dataformat-xml" ,java-fasterxml-jackson-dataformat-xml)
6500
       ("java-fasterxml-jackson-dataformat-yaml" ,java-fasterxml-jackson-dataformat-yaml)
6501
       ("java-commons-compress" ,java-commons-compress)
6502
       ("java-commons-csv" ,java-commons-csv)
6503
       ("java-stax2-api" ,java-stax2-api)
6504
       ("java-jeromq" ,java-jeromq)))
6505
    (native-inputs
6506
     `(("java-hamcrest-all" ,java-hamcrest-all)
6507
       ("java-commons-io" ,java-commons-io)
6508
       ("java-commons-lang3" ,java-commons-lang3)
6509
       ("java-junit" ,java-junit)
6510
       ("java-slf4j-api" ,java-slf4j-api)))
6511
    (arguments
6512
     `(#:tests? #f ; tests require more dependencies
6513
       #:test-dir "src/test"
6514
       #:source-dir "src/main/java"
6515
       #:jar-name "log4j-core.jar"
6516
       #:make-flags
6517
       (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out")
6518
                            "/share/java"))
6519
       #:phases
6520
       (modify-phases %standard-phases
6521
         (add-after 'unpack 'enter-dir
6522
           (lambda _ (chdir "log4j-core") #t)))))
6523
    (synopsis "Core component of the Log4j framework")
6524
    (description "This package provides the core component of the Log4j
6525
logging framework for Java.")))
6526
6527
(define-public java-protobuf
6528
  (package
6529
    (name "java-protobuf")
6530
    (version (package-version protobuf))
6531
    (source (origin
6532
              (method url-fetch)
6533
              (uri (string-append "https://github.com/google/protobuf/releases/"
6534
                                  "download/v" version "/protobuf-java-"
6535
                                  version ".tar.gz"))
6536
              (sha256
6537
               (base32
6538
                "1mvbibm8p1cdbaf5frql406ipgm56k0ygilswn633jg9qz2n69sc"))))
6539
    (build-system ant-build-system)
6540
    (arguments
6541
     `(#:jar-name "protobuf.jar"
6542
       #:source-dir "java/core/src/main/java"
6543
       #:tests? #f
6544
       #:phases
6545
       (modify-phases %standard-phases
6546
         (add-before 'build 'build-protos
6547
           (lambda _
6548
             (for-each
6549
               (lambda (proto)
6550
                 (invoke "protoc" "--java_out=java/core/src/main/java" "-Isrc"
6551
                         (string-append "src/google/protobuf/" proto ".proto")))
6552
                 '("any" "api" "descriptor" "duration" "empty" "field_mask"
6553
                   "source_context" "struct" "timestamp" "type" "wrappers"))
6554
             (invoke "protoc" "--java_out=java/core/src/main/java" "-Isrc"
6555
                     "src/google/protobuf/compiler/plugin.proto")
6556
             #t)))))
6557
    (inputs
6558
     `(("java-guava" ,java-guava)))
6559
    (native-inputs
6560
     `(("java-junit" ,java-junit)
6561
       ("protobuf" ,protobuf)))
6562
    (home-page (package-home-page protobuf))
6563
    (synopsis "")
6564
    (description "")
6565
    (license license:bsd-3)))
6566
6567
(define-public java-protobuf-nano
6568
  (package
6569
    (inherit java-protobuf)
6570
    (name "java-protobuf-nano")
6571
    (version "3.5.2")
6572
    (source (origin
6573
              (method git-fetch)
6574
              (uri (git-reference
6575
                     (url "https://github.com/protocolbuffers/protobuf")
6576
                     (commit (string-append "v" version))))
6577
              (file-name (git-file-name name version))
6578
              (sha256
6579
               (base32
6580
                "14gq6rnv03zvcb5hym240z4yqiphrmd5y4zx9a77n37rwvfgx5qy"))))
6581
    (arguments
6582
     `(#:jar-name "protobuf.jar"
6583
       #:source-dir "javanano/src/main/java"
6584
       #:tests? #f))));; difficult to generate sources))))
6585
       ;#:test-dir "javanano/src/test"
6586
       ;#:phases
6587
       ;(modify-phases %standard-phases
6588
       ;  (add-after 'build 'build-protos
6589
       ;    (lambda _
6590
       ;      (mkdir-p "build/classes")
6591
       ;      (apply invoke "protoc" "--javanano_out=build/generated"
6592
       ;             "--proto_path=javanano/src/test/java/com"
6593
       ;             (find-files "javanano/src/test" "unittest_.*"))
6594
       ;      (invoke "protoc" "--javanano_out=build/generated"
6595
       ;              "--proto_path=javanano/src/test/java/com"
6596
       ;              "javanano/src/test/java/com/google/protobuf/nano/map_test.proto")
6597
       ;      #t)))))))
6598
6599
(define-public java-jzlib
6600
  (package
6601
    (name "java-jzlib")
6602
    (version "1.1.3")
6603
    (source (origin
6604
              (method url-fetch)
6605
              (uri (string-append "https://github.com/ymnk/jzlib/archive/"
6606
                                  version ".tar.gz"))
6607
              (sha256
6608
               (base32
6609
                "1i0fplk22dlyaz3id0d8hb2wlsl36w9ggbvsq67sx77y0mi6bnl3"))))
6610
    (build-system ant-build-system)
6611
    (arguments
6612
     `(#:jar-name "jzlib.jar"
6613
       #:source-dir "src/main/java"
6614
       #:tests? #f))
6615
    (home-page "")
6616
    (synopsis "")
6617
    (description "")
6618
    (license license:bsd-3)))
6619
6620
(define-public java-conscrypt
6621
  (package
6622
    (name "java-conscrypt")
6623
    (version "1.4.2")
6624
    (source (origin
6625
              (method git-fetch)
6626
              (uri (git-reference
6627
                     (url "https://github.com/google/conscrypt.git")
6628
                     (commit version)))
6629
              (file-name (git-file-name name version))
6630
              (sha256
6631
               (base32
6632
                "1wfcc7gspvxxhm4vwb0yfidpsjj6kcdqnfwj2qsr4zfppn01gv7f"))))
6633
    (build-system ant-build-system)
6634
    (arguments
6635
     `(#:jar-name "conscrypt.jar"
6636
       #:source-dir "openjdk/src/main/java:common/src/main/java"
6637
       #:test-dir "openjdk/src/test"
6638
       #:tests? #f; conscrypt-testing require libcore from android
6639
       #:phases
6640
       (modify-phases %standard-phases
6641
         (add-before 'build 'build-library
6642
           (lambda* (#:key inputs #:allow-other-keys)
6643
             (mkdir-p "build/classes/META-INF/native")
6644
             (let ((jni-include (string-append "-I" (assoc-ref inputs "jdk")
6645
                                               "/include/linux")))
6646
               (for-each
6647
                 (lambda (cpp-file)
6648
                   (invoke "g++" "-c" cpp-file "-o" (string-append cpp-file ".o")
6649
                           "-std=c++11" "-fPIC" "-O2" "-Icommon/src/jni/main/include"
6650
                           "-Icommon/src/jni/unbundled/include" jni-include))
6651
                 (find-files "common/src/jni/main/cpp" ".*.cc$")))
6652
             (apply invoke "gcc" "-o"
6653
                    "build/classes/META-INF/native/libconscrypt.so"
6654
                    "-shared"
6655
                    (find-files "common/src/jni/main/cpp" ".*.o$"))
6656
             #t))
6657
         (add-before 'build 'generate-constants
6658
           (lambda _
6659
             (invoke "g++" "-std=c++11" "-O2" "-o" "gen_constants"
6660
                     "constants/src/gen/cpp/generate_constants.cc")
6661
             (with-output-to-file "common/src/main/java/org/conscrypt/NativeConstants.java"
6662
               (lambda _
6663
                 (invoke "./gen_constants")))
6664
             #t))
6665
         ;(add-before 'build 'build-testing
6666
         ;  (lambda _
6667
         ;    (mkdir-p "build/testing-classes")
6668
         ;    (apply invoke "javac" "-d" "build/testing-classes"
6669
         ;           "-cp" (getenv "CLASSPATH")
6670
         ;           (find-files "testing/src/main/java" ".*.java$"))
6671
         ;    #t))
6672
         (add-before 'check 'set-classpath
6673
           (lambda _
6674
             (setenv "CLASSPATH"
6675
                     (string-append (getenv "CLASSPATH") ":build/testing-classes"))
6676
             #t)))))
6677
    (inputs
6678
     `(("boringssl" ,boringssl)))
6679
    ;(native-inputs
6680
    ; `(("java-bouncycastle" ,java-bouncycastle)
6681
    ;   ("java-mockito-1" ,java-mockito-1)))
6682
    (home-page "")
6683
    (synopsis "")
6684
    (description "")
6685
    (license license:asl2.0)))
6686
6687
(define-public java-netty-tcnative-boringssl
6688
  (package
6689
    (name "java-netty-tcnative-boringssl")
6690
    (version "2.0.20")
6691
    (source (origin
6692
              (method git-fetch)
6693
              (uri (git-reference
6694
                     (url "https://github.com/netty/netty-tcnative.git")
6695
                     (commit (string-append "netty-tcnative-parent-"
6696
                                            version ".Final"))))
6697
              (file-name (git-file-name name version))
6698
              (sha256
6699
               (base32
6700
                "1kdgnk5133bw821iwhli8vj5kf8sb8vxav5wpdsv6vhrgrrm8nrl"))))
6701
    (build-system ant-build-system)
6702
    (arguments
6703
     `(#:jar-name "netty-tcnative-boringssl.jar"
6704
       #:source-dir "openssl-dynamic/src/main/java"
6705
       #:test-dir "openssl-dynamic/src/test"
6706
       #:phases
6707
       (modify-phases %standard-phases
6708
         (add-before 'build 'build-native
6709
           (lambda* (#:key inputs system #:allow-other-keys)
6710
             (let ((native-dir (string-append
6711
                                 "build/classes/META-INF/native/linux"
6712
                                 (if (or (string-prefix? "x86_64" system)
6713
                                         (string-prefix? "aarch64" system))
6714
                                   "64" "32")))
6715
                   (apr-include (string-append "-I" (assoc-ref inputs "apr")
6716
                                               "/include/apr-1"))
6717
                   (jni-include (string-append "-I" (assoc-ref inputs "jdk")
6718
                                               "/include/linux")))
6719
               (mkdir-p native-dir)
6720
               (for-each
6721
                 (lambda (source)
6722
                   (invoke "gcc" "-c" source "-o" (string-append source ".o")
6723
                           "-fPIC" "-O2" jni-include apr-include))
6724
                 (find-files "openssl-dynamic/src/main/c" ".*.c$"))
6725
               (apply invoke "gcc" "-o"
6726
                      (string-append native-dir "/libnetty_tcnative.so")
6727
                      "-shared" "-lssl" "-lapr-1" "-lcrypto"
6728
                      (find-files "openssl-dynamic/src/main/c" ".*.o$")))
6729
               #t))
6730
           (add-before 'check 'copy-lib
6731
             (lambda _
6732
               (mkdir-p "build/test-classes")
6733
               (copy-recursively "build/classes/META-INF"
6734
                                 "build/test-classes/META-INF")
6735
               #t)))))
6736
    (inputs
6737
     `(("apr" ,apr)
6738
       ("boringssl" ,boringssl)))
6739
    (native-inputs
6740
     `(("java-hamcrest-core" ,java-hamcrest-core)
6741
       ("java-junit" ,java-junit)))
6742
    (home-page "")
6743
    (synopsis "")
6744
    (description "")
6745
    (license license:asl2.0)))
6746
6747
(define-public java-mockito
6748
  (package
6749
    (name "java-mockito")
6750
    (version "2.23.6")
6751
    (source (origin
6752
              (method url-fetch)
6753
              (uri (string-append "https://github.com/mockito/mockito/archive/v"
6754
                                  version ".tar.gz"))
6755
              (file-name (string-append name "-" version ".tar.gz"))
6756
              (sha256
6757
               (base32
6758
                "08vw3fqymgpjww06q4zvc6247dj2a7y3hgxsfghxny5lklh12qml"))))
6759
    (build-system ant-build-system)
6760
    (arguments
6761
     `(#:jar-name "mockito.jar"
6762
       #:source-dir "src/main/java"
6763
       #:tests? #f; Some compilation errors
6764
       #:phases
6765
       (modify-phases %standard-phases
6766
         (add-before 'build 'use-system-asm
6767
           (lambda _
6768
             (substitute* "src/main/java/org/mockito/internal/creation/bytebuddy/InlineBytecodeGenerator.java"
6769
               (("net.bytebuddy.jar.asm") "org.objectweb.asm"))
6770
             #t)))))
6771
    (propagated-inputs
6772
     `(("java-asm" ,java-asm)
6773
       ("java-byte-buddy-agent" ,java-byte-buddy-agent)
6774
       ("java-byte-buddy-dep" ,java-byte-buddy-dep)
6775
       ("java-hamcrest-core" ,java-hamcrest-core)
6776
       ("java-junit" ,java-junit)
6777
       ("java-objenesis" ,java-objenesis)))
6778
    (native-inputs
6779
     `(("java-assertj" ,java-assertj)))
6780
    (home-page "https://mockito.org/")
6781
    (synopsis "")
6782
    (description "")
6783
    (license license:asl2.0)))
6784
6785
(define-public java-netty-common
6786
  (package
6787
    (name "java-netty-common")
6788
    (version "4.1.31")
6789
    (source (origin
6790
              (method url-fetch)
6791
              (uri (string-append "https://github.com/netty/netty/archive/netty-"
6792
                                  version ".Final.tar.gz"))
6793
              (sha256
6794
               (base32
6795
                "0dchrbwrhsxycs8kgwqcp81xybyx6p13k86d5pjsqni1hrc4sn2i"))))
6796
    (build-system ant-build-system)
6797
    (arguments
6798
     `(#:jar-name "netty-common.jar"
6799
       #:source-dir "common/src/main/java"
6800
       #:test-dir "common/src/test"
6801
       ;; Weird issue with log4j
6802
       #:test-exclude (list "**/Abstract*.*"
6803
                            "**/Log4JLoggerFactoryTest.*")))
6804
    (inputs
6805
     `(("java-commons-logging-minimal" ,java-commons-logging-minimal)
6806
       ("java-jctools-core" ,java-jctools-core)
6807
       ("java-log4j-api" ,java-log4j-api-for-netty)
6808
       ("java-log4j-core" ,java-log4j-core-for-netty)
6809
       ("java-log4j-1.2-api" ,java-log4j-1.2-api)
6810
       ("java-slf4j-api" ,java-slf4j-api)))
6811
    (native-inputs
6812
     `(("java-hamcrest-all" ,java-hamcrest-all)
6813
       ("java-junit" ,java-junit)
6814
       ("java-mockito" ,java-mockito)
6815
       ("java-slf4j-simple" ,java-slf4j-simple)))
6816
    (home-page "https://netty.io/")
6817
    (synopsis "")
6818
    (description "")
6819
    (license license:asl2.0)))
6820
6821
(define-public java-netty-buffer
6822
  (package
6823
    (inherit java-netty-common)
6824
    (name "java-netty-buffer")
6825
    (arguments
6826
     `(#:jar-name "netty-buffer.jar"
6827
       #:source-dir "buffer/src/main/java"
6828
       #:test-dir "buffer/src/test"
6829
       #:test-exclude (list "**/Abstract*.*"
6830
                            "**/ByteBufAllocatorTest.*")))
6831
    (inputs
6832
     `(("java-netty-common" ,java-netty-common)
6833
       ,@(package-inputs java-netty-common)))))
6834
6835
(define-public java-netty-resolver
6836
  (package
6837
    (inherit java-netty-common)
6838
    (name "java-netty-resolver")
6839
    (arguments
6840
     `(#:jar-name "netty-resolver.jar"
6841
       #:source-dir "resolver/src/main/java"
6842
       #:test-dir "resolver/src/test"))
6843
    (inputs
6844
     `(("java-netty-common" ,java-netty-common)
6845
       ,@(package-inputs java-netty-common)))))
6846
6847
(define-public java-netty-transport
6848
  (package
6849
    (inherit java-netty-common)
6850
    (name "java-netty-transport")
6851
    (arguments
6852
     `(#:jar-name "netty-transport.jar"
6853
       #:source-dir "transport/src/main/java"
6854
       #:test-dir "transport/src/test"
6855
       ;; reference to assertEquals is ambiguous
6856
       #:tests? #f))
6857
    (inputs
6858
     `(("java-netty-buffer" ,java-netty-buffer)
6859
       ("java-netty-common" ,java-netty-common)
6860
       ("java-netty-resolver" ,java-netty-resolver)
6861
       ,@(package-inputs java-netty-common)))
6862
    (native-inputs
6863
     `(("java-logback-classic" ,java-logback-classic)
6864
       ("java-logback-core" ,java-logback-core)
6865
       ,@(package-native-inputs java-netty-common)))))
6866
6867
(define-public java-netty-codec
6868
  (package
6869
    (inherit java-netty-common)
6870
    (name "java-netty-codec")
6871
    (arguments
6872
     `(#:jar-name "netty-codec.jar"
6873
       #:source-dir "codec/src/main/java"
6874
       #:test-dir "codec/src/test"
6875
       #:test-exclude
6876
       (list "**/Abstract*.java" "**/Base64Test.java" "**/ZlibTest.java"
6877
             "**/marshalling/*.java")
6878
       #:phases
6879
       (modify-phases %standard-phases
6880
         (add-before 'check 'fix-tests
6881
           (lambda _
6882
             (with-directory-excursion "codec/src/test/java/io/netty/handler"
6883
               (substitute* "codec/ByteToMessageCodecTest.java"
6884
                 (("Equals\\(1, ") "Equals((int) 1, (int)")))
6885
             #t)))))
6886
    (inputs
6887
     `(("java-jboss-marshalling" ,java-jboss-marshalling)
6888
       ("java-jzlib" ,java-jzlib)
6889
       ("java-lz4" ,java-lz4)
6890
       ("java-lzma" ,java-lzma)
6891
       ("java-netty-buffer" ,java-netty-buffer)
6892
       ("java-netty-common" ,java-netty-common)
6893
       ("java-netty-transport" ,java-netty-transport)
6894
       ("java-ning-compress" ,java-ning-compress)
6895
       ("java-protobuf" ,java-protobuf)
6896
       ("java-protobuf-nano" ,java-protobuf-nano)
6897
       ,@(package-inputs java-netty-common)))
6898
    (native-inputs
6899
     `(("java-commons-compress" ,java-commons-compress)
6900
       ("java-netty-resolver" ,java-netty-resolver)
6901
       ,@(package-native-inputs java-netty-common)))))
6902
6903
(define-public java-netty-handler
6904
  (package
6905
    (inherit java-netty-common)
6906
    (name "java-netty-handler")
6907
    (arguments
6908
     `(#:jar-name "netty-handler.jar"
6909
       #:source-dir "handler/src/main/java"
6910
       #:test-dir "handler/src/test"
6911
       ;; Reference to assertEquals is ambiguous
6912
       #:tests? #f))
6913
    (inputs
6914
     `(("java-bouncycastle" ,java-bouncycastle)
6915
       ("java-conscrypt" ,java-conscrypt)
6916
       ("java-eclipse-jetty-alpn-api" ,java-eclipse-jetty-alpn-api)
6917
       ("java-eclipse-jetty-npn-api" ,java-eclipse-jetty-npn-api)
6918
       ("java-netty-buffer" ,java-netty-buffer)
6919
       ("java-netty-codec" ,java-netty-codec)
6920
       ("java-netty-common" ,java-netty-common)
6921
       ("java-netty-tcnative-boringssl" ,java-netty-tcnative-boringssl)
6922
       ("java-netty-transport" ,java-netty-transport)
6923
       ,@(package-inputs java-netty-common)))
6924
    (native-inputs
6925
     `(("java-logback-classic" ,java-logback-classic)
6926
       ("java-logback-core" ,java-logback-core)
6927
       ,@(package-native-inputs java-netty-common)))))
6928
6929
(define-public java-conversantmedia-disruptor
6930
  (package
6931
    (name "java-conversantmedia-disruptor")
6932
    (version "1.2.14")
6933
    (source (origin
6934
              (method url-fetch)
6935
              (uri (string-append "https://github.com/conversant/disruptor/archive/" version ".tar.gz"))
6936
              (sha256
6937
               (base32
6938
                "0sbr6bcsawzfzwcxxlyh6lqqlqd09qld0xika9dhd01kxl60srwb"))))
6939
    (build-system ant-build-system)
6940
    (arguments
6941
     `(#:jar-name "conversantmedia-disruptor.jar"
6942
       #:source-dir "src/main/java"
6943
       #:test-dir "src/test"))
6944
    (inputs
6945
     `(("java-slf4j-api" ,java-slf4j-api)))
6946
    (native-inputs
6947
     `(("java-hamcrest-core" ,java-hamcrest-core)
6948
       ("java-junit" ,java-junit)))
6949
    (home-page "")
6950
    (synopsis "")
6951
    (description "")
6952
    (license license:asl2.0)))
6953
6954
(define-public java-okio
6955
  (package
6956
    (name "java-okio")
6957
    (version "1.16.0")
6958
    (source (origin
6959
              (method url-fetch)
6960
              (uri (string-append "https://github.com/square/okio/archive/okio-parent-"
6961
                                  version ".tar.gz"))
6962
              (sha256
6963
               (base32
6964
                "05xxrsv2klfvcnp5r4ri28d7hh502wcwlvsm9lnx4kpqlpkq0yzp"))))
6965
    (build-system ant-build-system)
6966
    (arguments
6967
     `(#:jar-name "okio.jar"
6968
       #:source-dir "okio/src/main/java"
6969
       #:test-dir "okio/src/test"))
6970
    (inputs
6971
     `(("java-jsr305" ,java-jsr305)
6972
       ("java-animal-sniffer-annotations" ,java-animal-sniffer-annotations)))
6973
    (native-inputs
6974
     `(("java-hamcrest-core" ,java-hamcrest-core)
6975
       ("java-junit" ,java-junit)))
6976
    (home-page "")
6977
    (synopsis "")
6978
    (description "")
6979
    (license license:asl2.0)))
6980
6981
(define-public java-okhttp
6982
  (package
6983
    (name "java-okhttp")
6984
    (version "3.12.0")
6985
    (source (origin
6986
              (method url-fetch)
6987
              (uri (string-append "https://github.com/square/okhttp/archive/parent-"
6988
                                  version ".tar.gz"))
6989
              (sha256
6990
               (base32
6991
                "1gj3rlz2sy6hbdy7yp18f2rb19z0mrp0wai6fls1slsds4fay2gr"))))
6992
    (build-system ant-build-system)
6993
    (arguments
6994
     `(#:jar-name "okhttp.jar"
6995
       #:source-dir "okhttp/src/main/java"
6996
       #:test-dir "okhttp/src/test"
6997
       #:phases
6998
       (modify-phases %standard-phases
6999
         (add-after 'unpack 'remove-platforms
7000
	   (lambda _
7001
	     (delete-file "okhttp/src/main/java/okhttp3/internal/platform/AndroidPlatform.java")
7002
	     (delete-file "okhttp/src/main/java/okhttp3/internal/platform/ConscryptPlatform.java")
7003
	     (substitute* "okhttp/src/main/java/okhttp3/internal/platform/Platform.java"
7004
	       (("AndroidPlatform.buildIfSupported.*") "null;\n")
7005
	       (("ConscryptPlatform.buildIfSupported.*") "null;\n"))
7006
	     #t))
7007
	 (add-after 'unpack 'fill-templates
7008
	   (lambda _
7009
	     (with-directory-excursion "okhttp/src/main/java-templates"
7010
	       (for-each
7011
	         (lambda (file)
7012
		   (let ((installed-name (string-append "../java/" file)))
7013
	             (copy-file file installed-name)
7014
		     (substitute* installed-name
7015
		       (("\\$\\{project.version\\}") ,version))))
7016
	         (find-files "." ".*.java")))
7017
	     #t)))))
7018
    (inputs
7019
     `(("java-animal-sniffer-annotations" ,java-animal-sniffer-annotations)
7020
       ("java-jsr305" ,java-jsr305)
7021
       ("java-okio" ,java-okio)))
7022
    (native-inputs
7023
     `(("java-junit" ,java-junit)))
7024
    (home-page "")
7025
    (synopsis "")
7026
    (description "")
7027
    (license license:asl2.0)))
7028
7029
(define-public java-okhttp-urlconnection
7030
  (package
7031
    (inherit java-okhttp)
7032
    (name "java-okhttp-urlconnection")
7033
    (arguments
7034
     `(#:jar-name "okhttp.jar"
7035
       #:source-dir "okhttp-urlconnection/src/main/java"
7036
       #:test-dir "okhttp-urlconnection/src/test"
7037
       ;; TODO: require okhttp-mockwebserver
7038
       #:tests? #f))
7039
    (inputs
7040
     `(("java-okhttp" ,java-okhttp)
7041
       ,@(package-inputs java-okhttp)))))
7042
7043
(define-public java-config
7044
  (package
7045
    (name "java-config")
7046
    (version "1.3.3")
7047
    (source (origin
7048
              (method url-fetch)
7049
              (uri (string-append "https://github.com/lightbend/config/archive/v"
7050
                                  version ".tar.gz"))
7051
              (sha256
7052
               (base32
7053
                "0jsw3s902aqj5c9iddj7ahy9qlrc39d7w3jj9y13bn5ja8biazzk"))))
7054
    (build-system ant-build-system)
7055
    (arguments
7056
     `(#:jar-name "config.jar"
7057
       #:source-dir "config/src/main/java"
7058
       #:test-dir "config/src/test"))
7059
    (native-inputs
7060
     `(("java-junit" ,java-junit)))
7061
    (home-page "")
7062
    (synopsis "")
7063
    (description "")
7064
    (license license:asl2.0)))
7065
7066
(define-public java-reactive-streams
7067
  (package
7068
    (name "java-reactive-streams")
7069
    (version "1.0.2")
7070
    (source (origin
7071
              (method url-fetch)
7072
              (uri (string-append "https://github.com/reactive-streams/reactive-streams-jvm/archive/v"
7073
                                  version ".tar.gz"))
7074
              (sha256
7075
               (base32
7076
                "16nrm8fv058vr8442986yl6kvdb7w5if8lb8ip2jakawjq93k2vm"))))
7077
    (build-system ant-build-system)
7078
    (arguments
7079
     `(#:jar-name "reactive-streams.jar"
7080
       #:source-dir "api/src/main/java"
7081
       ;; No tests
7082
       #:tests? #f))
7083
    (home-page "")
7084
    (synopsis "")
7085
    (description "")
7086
    (license license:asl2.0)))
7087
7088
(define-public java-streamex
7089
  (package
7090
    (name "java-streamex")
7091
    (version "0.6.8")
7092
    (source (origin
7093
              (method url-fetch)
7094
              (uri (string-append "https://github.com/amaembo/streamex/archive/streamex-"
7095
                                  version ".tar.gz"))
7096
              (sha256
7097
               (base32
7098
                "069a7q7m7srshv7nxvvw5i338k0kmsbazqhfsbqsgd6bklfh4r7h"))))
7099
    (build-system ant-build-system)
7100
    (arguments
7101
     `(#:jar-name "streamex.jar"
7102
       #:source-dir "src/main/java"
7103
       #:test-dir "src/test"))
7104
    (native-inputs
7105
     `(("java-hamcrest-core" ,java-hamcrest-core)
7106
       ("java-junit" ,java-junit)))
7107
    (home-page "")
7108
    (synopsis "")
7109
    (description "")
7110
    (license license:asl2.0)))
7111
7112
(define-public java-protoc-jar
7113
  (package
7114
    (name "java-protoc-jar")
7115
    (version "3.6.0.1")
7116
    (source (origin
7117
              (method url-fetch)
7118
              (uri (string-append "https://github.com/os72/protoc-jar/archive/v"
7119
                                  version ".tar.gz"))
7120
              (sha256
7121
               (base32
7122
                "13q9cvplsbv9jxx5myiir4hdlhclgr9ka6c9x9f022hcn0lzgjpw"))
7123
              (modules '((guix build utils)))
7124
              (snippet
7125
               `(delete-file-recursively "bin"))))
7126
    (build-system ant-build-system)
7127
    (arguments
7128
     `(#:jar-name "protoc-jar.jar"
7129
       #:tests? #f; require network
7130
       #:source-dir "src/main/java"
7131
       #:phases
7132
       (modify-phases %standard-phases
7133
         (add-before 'build 'embed-protoc
7134
           (lambda* (#:key inputs system #:allow-other-keys)
7135
             (let* ((dir (string-append "build/classes/bin/" ,(package-version protobuf)))
7136
                    (file (string-append dir "/protoc-" ,(package-version protobuf)
7137
                                         "-linux-" (string-drop-right system 6) ".exe")))
7138
               (mkdir-p dir)
7139
               (copy-file (string-append (assoc-ref inputs "protobuf") "/bin/protoc") file))
7140
             #t)))))
7141
    (inputs
7142
     `(("protobuf" ,protobuf)))
7143
    (native-inputs
7144
     `(("java-hamcrest-core" ,java-hamcrest-core)
7145
       ("java-junit" ,java-junit)))
7146
    (home-page "")
7147
    (synopsis "")
7148
    (description "")
7149
    (license license:asl2.0)))
7150
7151
(define-public java-fmpp
7152
  (package
7153
    (name "java-fmpp")
7154
    (version "0.9.16")
7155
    (source (origin
7156
              (method url-fetch)
7157
              (uri (string-append "https://github.com/freemarker/fmpp/archive/v"
7158
                                  version ".tar.gz"))
7159
              (sha256
7160
               (base32
7161
                "0k66qq8mss165mqbn3gs537xgqx74rch6zx335d415vd4h9d83va"))
7162
              (patches
7163
                (search-patches "java-fmpp-remove-imageinfo.patch"))
7164
              (modules '((guix build utils)))
7165
              (snippet
7166
               ;; NOTE: the bin/ directory only contain scripts
7167
               `(begin
7168
                  (delete-file-recursively "lib")
7169
                  #t))))
7170
    (build-system ant-build-system)
7171
    (arguments
7172
     `(#:test-target "test"
7173
       #:phases
7174
       (modify-phases %standard-phases
7175
         (add-before 'build 'set-modification-time
7176
           (lambda _
7177
             ;; This software assumes that a modification date of 0 means
7178
             ;; that it failed to get the modification time. Guix sets
7179
             ;; a modification time of 0, which leads to test failures.
7180
             (for-each (lambda (file) (utime file 1 1)) (find-files "src" "."))
7181
             #t))
7182
         (add-before 'build 'create-lib
7183
           (lambda* (#:key inputs #:allow-other-keys)
7184
             (mkdir-p "lib")
7185
             (copy-file (string-append (assoc-ref inputs "java-apache-freemarker")
7186
                                       "/share/java/java-apache-freemarker.jar")
7187
                        "lib/freemarker.jar")
7188
             (copy-file (string-append (assoc-ref inputs "ant") "/lib/ant.jar")
7189
                        "lib/ant.jar")
7190
             (copy-file (string-append (assoc-ref inputs "java-junit")
7191
                                       "/share/java/junit.jar")
7192
                        "lib/junit.jar")
7193
             (copy-file (string-append (assoc-ref inputs "java-hamcrest-all")
7194
                                       "/share/java/hamcrest-all.jar")
7195
                        "lib/hamcrest-generator-nodeps.jar")
7196
             (copy-file (car (find-files (string-append (assoc-ref inputs "java-bsh")
7197
                                                        "/share/java/")
7198
                                         ".*.jar$"))
7199
                        "lib/bsh.jar")
7200
             (copy-file (car (find-files (string-append
7201
                                           (assoc-ref
7202
                                             inputs
7203
                                             "java-apache-xml-commons-resolver")
7204
                                           "/share/java/")
7205
                                         ".*.jar$"))
7206
                        "lib/resolver.jar")
7207
             #t))
7208
         (add-before 'build 'fix-class-path
7209
           (lambda* (#:key inputs #:allow-other-keys)
7210
             ;; The result otherwise requires its dependencies alongside it.
7211
             (with-fluids ((%default-port-encoding "ISO-8859-1"))
7212
               (substitute* "build.xml"
7213
                 ;; Also fix embedded timestamp
7214
                 (("\\$\\{timeStamp\\}") "1970-01-01T00:00:00Z")
7215
                 ((" imageinfo.jar") "")
7216
                 (("freemarker.jar ")
7217
                  (string-append
7218
                    ;; In java8, we can only refer to jar files relatively to
7219
                    ;; the current jar...
7220
                    "../../../../../../../../../../"
7221
                    (car (find-files
7222
                           (assoc-ref inputs "java-apache-freemarker")
7223
                           "freemarker.jar"))
7224
                    " "))
7225
                 (("bsh.jar ")
7226
                  (string-append
7227
                    "../../../../../../../../../../"
7228
                    (car (find-files (assoc-ref inputs "java-bsh") ".*.jar$"))
7229
                    " "))
7230
                 ((" resolver.jar")
7231
                  (string-append
7232
                    " ../../../../../../../../../../"
7233
                    (car (find-files
7234
                           (assoc-ref inputs "java-apache-xml-commons-resolver")
7235
                           ".*.jar$"))))))
7236
             #t))
7237
         (replace 'install
7238
           (lambda* (#:key inputs outputs #:allow-other-keys)
7239
             (let* ((out (assoc-ref outputs "out"))
7240
                    (java (string-append out "/lib"))
7241
                    (bin (string-append out "/bin")))
7242
               (install-file "lib/fmpp.jar" java)
7243
               (substitute* "bin/fmpp"
7244
                 (("#!.*")
7245
                  (string-append "#!" (which "sh") "\n"
7246
                                 "JAVA_HOME=" (assoc-ref inputs "jdk"))))
7247
               (install-file "bin/fmpp" bin)
7248
               (chmod (string-append bin "/fmpp") #o755))
7249
             #t)))))
7250
    (inputs
7251
     `(("java-apache-freemarker" ,java-apache-freemarker)
7252
       ("java-apache-xml-commons-resolver" ,java-apache-xml-commons-resolver)
7253
       ("java-bsh" ,java-bsh)))
7254
    (native-inputs
7255
     `(("java-hamcrest-all" ,java-hamcrest-all)
7256
       ("java-junit" ,java-junit)))
7257
    (home-page "")
7258
    (synopsis "")
7259
    (description "")
7260
    (license license:asl2.0)))
7261
7262
(define-public java-sbt-ipcsocket
7263
  (package
7264
    (name "java-sbt-ipcsocket")
7265
    (version "1.0.0")
7266
    (source (origin
7267
              (method url-fetch)
7268
              (uri (string-append "https://github.com/sbt/ipcsocket/archive/v"
7269
                                  version ".tar.gz"))
7270
              (sha256
7271
               (base32
7272
                "0zqg1c10dwjzvqb9wngmprs2cfiyw3n1jq8ag0hwk978f1d93a4h"))))
7273
    (build-system ant-build-system)
7274
    (arguments
7275
     `(#:jar-name "ipcsocket.jar"
7276
       #:source-dir "src/main/java"
7277
       ;; Cannot create unix domain socket properly in the build environment
7278
       #:tests? #f))
7279
    (inputs
7280
     `(("java-native-access" ,java-native-access)
7281
       ("java-native-access-platform" ,java-native-access-platform)))
7282
    (home-page "")
7283
    (synopsis "")
7284
    (description "")
7285
    (license license:asl2.0)))
7286
7287
(define-public java-sbt-test-interface
7288
  (package
7289
    (name "java-sbt-test-interface")
7290
    (version "1.0")
7291
    (source (origin
7292
              (method url-fetch)
7293
              (uri (string-append "https://github.com/sbt/test-interface/archive/v"
7294
                                  version ".tar.gz"))
7295
              (sha256
7296
               (base32
7297
                "0lqsaik33d7wfq8d69mq4s6jb16rb2fmnhv2wjqisrxi0m4nmffw"))))
7298
    (build-system ant-build-system)
7299
    (arguments
7300
     `(#:jar-name "test-interface.jar"
7301
       #:source-dir "src/main/java"
7302
       ;; TODO: tests are written in scala
7303
       #:tests? #f))
7304
    (home-page "")
7305
    (synopsis "")
7306
    (description "")
7307
    (license license:asl2.0)))
7308
7309
(define-public java-caffeine
7310
  (package
7311
    (name "java-caffeine")
7312
    (version "2.6.2")
7313
    (source (origin
7314
              (method url-fetch)
7315
              (uri (string-append "https://github.com/ben-manes/caffeine/archive/v"
7316
                                  version ".tar.gz"))
7317
              (sha256
7318
               (base32
7319
                "1kaxz4fpjpgyv4n2zhlb3q0f8mn5ji68wilzwhf9dsbq4l12zkx4"))))
7320
    (build-system ant-build-system)
7321
    (arguments
7322
     `(#:jar-name "caffeine.jar"
7323
       #:source-dir "caffeine/src/main/java:caffeine/generated-sources"
7324
       #:test-dir "caffeine/src/test"
7325
       #:tests? #f; TODO: need mockito2 and more dependencies
7326
       #:jdk ,openjdk9
7327
       #:phases
7328
       (modify-phases %standard-phases
7329
         (add-before 'build 'generate-javapoet
7330
           (lambda _
7331
             (mkdir-p "build/javapoet")
7332
             (apply invoke "javac" "-cp" (getenv "CLASSPATH")
7333
                    "-d" "build/javapoet"
7334
                    (find-files "caffeine/src/javaPoet" ".*.java$"))
7335
             (copy-recursively "caffeine/src/javaPoet/resources"
7336
                               "build/javapoet")
7337
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
7338
                                                 ":build/javapoet")
7339
                     "-noverify"
7340
                     "com.github.benmanes.caffeine.cache.LocalCacheFactoryGenerator"
7341
                     "caffeine/generated-sources")
7342
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
7343
                                                 ":build/javapoet")
7344
                     "-noverify"
7345
                     "com.github.benmanes.caffeine.cache.NodeFactoryGenerator"
7346
                     "caffeine/generated-sources")
7347
             #t)))))
7348
    (inputs
7349
     `(("java-commons-lang3" ,java-commons-lang3)
7350
       ("java-guava" ,java-guava)
7351
       ("java-jsr305" ,java-jsr305)
7352
       ("java-javapoet" ,java-javapoet)))
7353
    (native-inputs
7354
     `(("java-hamcrest-all" ,java-hamcrest-all)
7355
       ("java-testng" ,java-testng)))
7356
    (home-page "")
7357
    (synopsis "")
7358
    (description "")
7359
    (license license:asl2.0)))
7360
7361
(define-public java-paranamer
7362
  (package
7363
    (name "java-paranamer")
7364
    (version "2.8")
7365
    (source (origin
7366
              (method git-fetch)
7367
              ;; This repository is a mirror of the svn directory that disappeared
7368
              ;; along with codehaus.org
7369
              (uri (git-reference
7370
                     (url "https://github.com/paul-hammant/paranamer")
7371
                     (commit (string-append "paranamer-parent-" version))))
7372
              (file-name (git-file-name name version))
7373
              (sha256
7374
               (base32
7375
                "1jfick1sfjmqdxak72h5sx7xcyq0njwsg64jp4xaz06365ghbiz9"))
7376
              (modules '((guix build utils)))
7377
              (snippet
7378
                `(for-each delete-file (find-files "." ".*.jar")))))
7379
    (build-system ant-build-system)
7380
    (arguments
7381
     `(#:jar-name "paranamer.jar"
7382
       #:source-dir "paranamer/src/java"
7383
       #:tests? #f))
7384
    (inputs
7385
     `(("java-javax-inject" ,java-javax-inject)))
7386
    (home-page "")
7387
    (synopsis "")
7388
    (description "")
7389
    (license license:bsd-3)))
7390
7391
(define-public java-picocontainer
7392
  (package
7393
    (name "java-picocontainer")
7394
    (version "2.15")
7395
    (source (origin
7396
              (method git-fetch)
7397
              ;; This repository is a mirror of the svn directory that disappeared
7398
              ;; along with codehaus.org
7399
              (uri (git-reference
7400
                     (url "https://github.com/codehaus/picocontainer")
7401
                     (commit "7be6b8b0eb33421dc7a755817628e06b79bd879d")))
7402
              (file-name (git-file-name name version))
7403
              (sha256
7404
               (base32
7405
                "06ygwa1wkk70lb9abc0shh1lzyysjaciqb5917qxsyn4rx43sjdg"))
7406
              (modules '((guix build utils)))
7407
              (snippet
7408
                `(for-each delete-file (find-files "." ".*.jar")))))
7409
    (build-system ant-build-system)
7410
    (arguments
7411
     `(#:jar-name "picocontainer.jar"
7412
       #:source-dir "container/src/java"
7413
       #:tests? #f
7414
       #:phases
7415
       (modify-phases %standard-phases
7416
         (add-after 'unpack 'chdir
7417
           (lambda _
7418
             (chdir "java/2.x/tags/picocontainer-2.15")
7419
             #t)))))
7420
    (inputs
7421
     `(("java-paranamer" ,java-paranamer)))
7422
    (home-page "")
7423
    (synopsis "")
7424
    (description "")
7425
    (license license:bsd-3)))
7426
7427
(define-public java-picocontainer-1
7428
  (package
7429
    (inherit java-picocontainer)
7430
    (version "1.3")
7431
    (arguments
7432
     `(#:jar-name "picocontainer.jar"
7433
       #:source-dir "container/src/java"
7434
       #:tests? #f
7435
       #:phases
7436
       (modify-phases %standard-phases
7437
         (add-after 'unpack 'chdir
7438
           (lambda _
7439
             (chdir "java/1.x/picocontainer/tags/picocontainer-1_3")
7440
             #t)))))))
7441
7442
(define-public java-automaton
7443
  (package
7444
    (name "java-automaton")
7445
    (version "1.12.2")
7446
    (source (origin
7447
              (method git-fetch)
7448
              (uri (git-reference
7449
                     (url "https://github.com/cs-au-dk/dk.brics.automaton")
7450
                     (commit "328cf493ec2537af9d2bbce0eb4b4ef118b66547")))
7451
              (file-name (git-file-name name version))
7452
              (sha256
7453
               (base32
7454
                "1vjcz8m8wlqx6j1cymww7mfh9ckxfwcfm63dvg3bg394l8qzbxg3"))))
7455
    (build-system ant-build-system)
7456
    (arguments
7457
     `(#:tests? #f; no tests
7458
       #:phases
7459
       (modify-phases %standard-phases
7460
         (replace 'install (install-jars ".")))))
7461
    (home-page "")
7462
    (synopsis "")
7463
    (description "")
7464
    (license license:asl2.0)))
7465
7466
(define-public java-spullara-cli-parser
7467
  (package
7468
    (name "java-spullara-cli-parser")
7469
    (version "1.1.5")
7470
    (source (origin
7471
              (method git-fetch)
7472
              (uri (git-reference
7473
                     (url "https://github.com/spullara/cli-parser")
7474
                     (commit (string-append "cli-parser-" version))))
7475
              (file-name (git-file-name name version))
7476
              (sha256
7477
               (base32
7478
                "1viysb4aws6nsbp4lil1fwwc69rr9s5z66g17iygmbq5lincz35y"))))
7479
    (build-system ant-build-system)
7480
    (arguments
7481
     `(#:jar-name "spullara-cli-parser.jar"
7482
       #:test-dir "src/test"
7483
       #:source-dir "src/main/java"))
7484
    (native-inputs
7485
     `(("java-hamcrest-core" ,java-hamcrest-core)
7486
       ("java-junit" ,java-junit)))
7487
    (home-page "https://github.com/spullara/cli-parser")
7488
    (synopsis "")
7489
    (description "")
7490
    (license license:asl2.0)))
7491
7492
(define-public java-eawtstub
7493
  (let ((commit "ae5d21ccbc62754eb0353b5b1d57abf1da954652"))
7494
    (package
7495
      (name "java-eawtstub")
7496
      (version (git-version "0.0.0" "0" commit))
7497
      (source (origin
7498
                (method git-fetch)
7499
                (uri (git-reference
7500
                       (url "https://github.com/consulo/eawtstub")
7501
                       (commit commit)))
7502
                (file-name (git-file-name name version))
7503
                (sha256
7504
                 (base32
7505
                  "0l0xng9qxs3b5l86nb77vr65a924ginxd32sjiqjrb9lbh2yp7ap"))))
7506
      (build-system ant-build-system)
7507
      (arguments
7508
       `(#:jar-name "eawtstub.jar"
7509
         ;; No tests
7510
         #:tests? #f))
7511
      (home-page "")
7512
      (synopsis "")
7513
      (description "")
7514
      (license license:asl2.0))))
7515
7516
(define-public java-jline3-terminal
7517
  (package
7518
    (name "java-jline3-terminal")
7519
    (version "3.19.0")
7520
    (source (origin
7521
              (method git-fetch)
7522
              (uri (git-reference
7523
                     (url "https://github.com/jline/jline3")
7524
                     (commit (string-append "jline-parent-" version))))
7525
              (file-name (git-file-name name version))
7526
              (sha256
7527
               (base32
7528
                "16cfbkbj925c92xnwq5sbg7v57yh840g0mh95iyzkkajxirz9qn9"))
7529
              (snippet
7530
               ;; calls maven, and conflicts with ant
7531
               `(delete-file "build"))))
7532
    (build-system ant-build-system)
7533
    (arguments
7534
     `(#:jar-name "jline3-terminal.jar"
7535
       #:source-dir "terminal/src/main/java"
7536
       #:test-dir "terminal/src/test"
7537
       #:phases
7538
       (modify-phases %standard-phases
7539
         (add-before 'build 'copy-resources
7540
           (lambda _
7541
             (copy-recursively "terminal/src/main/resources/" "build/classes")
7542
             #t)))))
7543
    (native-inputs
7544
     `(("java-easymock" ,java-easymock)
7545
       ("java-junit" ,java-junit)))
7546
    (home-page "")
7547
    (synopsis "")
7548
    (description "")
7549
    (license #f)))
7550
7551
(define-public java-jline3-reader
7552
  (package
7553
    (inherit java-jline3-terminal)
7554
    (name "java-jline3-reader")
7555
    (arguments
7556
     `(#:jar-name "jline3-reader.jar"
7557
       #:source-dir "reader/src/main/java"
7558
       #:test-dir "reader/src/test"))
7559
    (inputs
7560
     `(("java-jline3-terminal" ,java-jline3-terminal)))))
7561
7562
(define-public java-concurrent-reference-hash-map
7563
  (package
7564
    (name "java-concurrent-reference-hash-map")
7565
    (version "1.0.0")
7566
    (source (origin
7567
              (method git-fetch)
7568
              (uri (git-reference
7569
                     (url "https://github.com/alexarchambault/concurrent-reference-hash-map")
7570
                     (commit (string-append "v" version))))
7571
              (file-name (git-file-name name version))
7572
              (sha256
7573
               (base32
7574
                "1x2pybyld2b6pp5f93l2ixxljk18vkw11s6pysfck7a30l9f7bzb"))))
7575
    (build-system ant-build-system)
7576
    (arguments
7577
     `(#:jar-name "concurrent-reference-hash-map.jar"
7578
       #:tests? #f)); no tests
7579
    (home-page "")
7580
    (synopsis "")
7581
    (description "")
7582
    (license license:lgpl2.1)))
7583