* [bug#29061] Java patches
2017-10-29 20:47 [bug#29061] Java patches Julien Lepiller
@ 2017-10-29 20:54 ` Julien Lepiller
2017-10-30 14:55 ` Leo Famulari
0 siblings, 1 reply; 6+ messages in thread
From: Julien Lepiller @ 2017-10-29 20:54 UTC (permalink / raw)
To: 29061
[-- Attachment #1: Type: text/plain, Size: 222 bytes --]
On Sun, 29 Oct 2017 21:47:09 +0100
Julien Lepiller <julien@lepiller.eu> wrote:
> Hi, here are 22 new java patches that get us a bit closer to maven :)
>
>
>
Somehow I can't use git send-email, so here are the patches.
[-- Attachment #2: 0001-gnu-Add-java-bsh.patch --]
[-- Type: text/x-patch, Size: 2015 bytes --]
From 10c1801922abbc82e48360b22d5d8681449715b9 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:05:04 +0200
Subject: [PATCH 01/22] gnu: Add java-bsh.
* gnu/packages/java.scm (java-bsh): New variable.
---
gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 70afb7be1..16203317a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6256,3 +6256,34 @@ file when the JVM loads it.")
trivial to parse command line parameters. Parameters are declared with
annotations.")
(license license:asl2.0)))
+
+(define-public java-bsh
+ (package
+ (name "java-bsh")
+ (version "2.0b6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/beanshell/beanshell/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1bawkxk6jyc75hxvzkpz689h73cn3f222m0ar3nvb0dal2b85kfv"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:build-target "jarall"
+ #:test-target "junit-tests-all"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((share (string-append (assoc-ref outputs "out") "/share/java")))
+ (mkdir-p share)
+ (copy-file "dist/bsh-2.0b6.jar" (string-append share "/bsh-2.0b6.jar"))))))))
+ (home-page "http://beanshell.org/")
+ (synopsis "Lightweight Scripting for Java")
+ (description "BeanShell is a small, free, embeddable Java source
+interpreter with object scripting language features, written in Java.
+BeanShell dynamically executes standard Java syntax and extends it with common
+scripting conveniences such as loose types, commands, and method closures like
+those in Perl and JavaScript.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #3: 0002-gnu-Add-java-bsh.patch --]
[-- Type: text/x-patch, Size: 1480 bytes --]
From f02f8c081e1627180e9f78393c3ab1fd8ad8b60b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:05:04 +0200
Subject: [PATCH 02/22] gnu: Add java-bsh.
* gnu/packages/java.scm (java-bsh): New variable.
---
gnu/packages/java.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 16203317a..5d2a71901 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6265,6 +6265,7 @@ annotations.")
(method url-fetch)
(uri (string-append "https://github.com/beanshell/beanshell/archive/"
version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1bawkxk6jyc75hxvzkpz689h73cn3f222m0ar3nvb0dal2b85kfv"))))
@@ -6278,7 +6279,8 @@ annotations.")
(lambda* (#:key outputs #:allow-other-keys)
(let ((share (string-append (assoc-ref outputs "out") "/share/java")))
(mkdir-p share)
- (copy-file "dist/bsh-2.0b6.jar" (string-append share "/bsh-2.0b6.jar"))))))))
+ (copy-file "dist/bsh-2.0b6.jar"
+ (string-append share "/bsh-2.0b6.jar"))))))))
(home-page "http://beanshell.org/")
(synopsis "Lightweight Scripting for Java")
(description "BeanShell is a small, free, embeddable Java source
--
2.14.3
[-- Attachment #4: 0003-gnu-Add-java-jmock.patch --]
[-- Type: text/x-patch, Size: 2248 bytes --]
From 016af8aad804f488e530ae680855f175e8d8cfd1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:08:38 +0200
Subject: [PATCH 03/22] gnu: Add java-jmock.
* gnu/packages/java.scm (java-jmock): New variable.
---
gnu/packages/java.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5d2a71901..ce3d794b8 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2513,6 +2513,47 @@ interactions between the objects in your programs.
The jMock library
+@itemize
+@item makes it quick and easy to define mock objects
+@item lets you precisely specify the interactions between
+ your objects, reducing the brittleness of your tests
+@item plugs into your favourite test framework
+@item is easy to extend.
+@end itemize\n")
+ (license license:bsd-3)))
+
+(define-public java-jmock
+ (package
+ (name "java-jmock")
+ (version "2.8.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jmock-developers/"
+ "jmock-library/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18650a9g8xffcsdb6w91pbswa7f40fp2sh6s3nclkclz5dbzq8f0"))))
+ (build-system ant-build-system)
+ (inputs
+ `(("java-hamcrest-all" ,java-hamcrest-all)
+ ("java-asm" ,java-asm)
+ ("java-bsh" ,java-bsh)
+ ("java-junit" ,java-junit)))
+ (arguments
+ `(#:jar-name "java-jmock.jar"
+ #:source-dir "jmock/src/main/java"
+ #:test-dir "jmock/src/test"))
+ (native-inputs
+ `(("cglib" ,java-cglib)))
+ (home-page "http://www.jmock.org")
+ (synopsis "Mock object library for test-driven development")
+ (description "JMock is a library that supports test-driven development of
+Java code with mock objects. Mock objects help you design and test the
+interactions between the objects in your programs.
+
+The jMock library
+
@itemize
@item makes it quick and easy to define mock objects
@item lets you precisely specify the interactions between
--
2.14.3
[-- Attachment #5: 0004-gnu-Add-java-jmock-junit4.patch --]
[-- Type: text/x-patch, Size: 1164 bytes --]
From f2b5dcd1cbe5a3a8fcb9da6e6bc66e697618b645 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:09:31 +0200
Subject: [PATCH 04/22] gnu: Add java-jmock-junit4.
* gnu/packages/java.scm (java-jmock-junit4): New variable.
---
gnu/packages/java.scm | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index ce3d794b8..ae73bd870 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2563,6 +2563,21 @@ The jMock library
@end itemize\n")
(license license:bsd-3)))
+(define-public java-jmock-junit4
+ (package
+ (inherit java-jmock)
+ (name "java-jmock-junit4")
+ (arguments
+ `(#:jar-name "java-jmock-junit4.jar"
+ #:source-dir "jmock-junit4/src/main/java"
+ #:test-dir "jmock-junit4/src/test"))
+ (inputs
+ `(("java-hamcrest-all" ,java-hamcrest-all)
+ ("java-asm" ,java-asm)
+ ("java-bsh" ,java-bsh)
+ ("java-jmock" ,java-jmock)
+ ("java-jumit" ,java-junit)))))
+
(define-public java-hamcrest-all
(package (inherit java-hamcrest-core)
(name "java-hamcrest-all")
--
2.14.3
[-- Attachment #6: 0005-gnu-Add-java-jmock-legacy.patch --]
[-- Type: text/x-patch, Size: 1763 bytes --]
From 330cbcb37084af37dccd0d63adf381c671d4317c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:10:38 +0200
Subject: [PATCH 05/22] gnu: Add java-jmock-legacy.
* gnu/packages/java.scm (java-jmock-legacy): New variable.
---
gnu/packages/java.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index ae73bd870..af0b851e5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2578,6 +2578,33 @@ The jMock library
("java-jmock" ,java-jmock)
("java-jumit" ,java-junit)))))
+(define-public java-jmock-legacy
+ (package
+ (inherit java-jmock)
+ (name "java-jmock-legacy")
+ (arguments
+ `(#:jar-name "java-jmock-legacy.jar"
+ #:source-dir "jmock-legacy/src/main/java"
+ #:test-dir "jmock-legacy/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'copy-tests
+ (lambda _
+ ;; This file is a dependancy of some tests
+ (let ((file "org/jmock/test/acceptance/PackageProtectedType.java"))
+ (copy-file (string-append "jmock/src/test/java/" file)
+ (string-append "jmock-legacy/src/test/java/" file))))))))
+ (inputs
+ `(("java-hamcrest-all" ,java-hamcrest-all)
+ ("java-objenesis" ,java-objenesis)
+ ("java-cglib" ,java-cglib)
+ ("java-jmock" ,java-jmock)
+ ("java-asm" ,java-asm)
+ ("java-bsh" ,java-bsh)
+ ("java-junit" ,java-junit)))
+ (native-inputs
+ `(("java-jmock-junit4" ,java-jmock-junit4)))))
+
(define-public java-hamcrest-all
(package (inherit java-hamcrest-core)
(name "java-hamcrest-all")
--
2.14.3
[-- Attachment #7: 0006-gnu-Add-java-fest-util.patch --]
[-- Type: text/x-patch, Size: 1600 bytes --]
From 9b238e290c952862725db31fbbc1bc7c73728947 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:14:53 +0200
Subject: [PATCH 06/22] gnu: Add java-fest-util.
* gnu/packages/java.scm (java-fest-util): New variable.
---
gnu/packages/java.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index af0b851e5..9cb14cf27 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6372,3 +6372,26 @@ BeanShell dynamically executes standard Java syntax and extends it with common
scripting conveniences such as loose types, commands, and method closures like
those in Perl and JavaScript.")
(license license:asl2.0)))
+
+(define-public java-fest-util
+ (package
+ (name "java-fest-util")
+ (version "1.2.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/alexruiz/fest-util/"
+ "archive/fest-util-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05g6hljz5mdaakk8d7g32klbhz9bdwp3qlj6rdaggdidxs3x1sb8"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-fest-util.jar"
+ #:source-dir "src/main/java"))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://github.com/alexruiz/fest-util")
+ (synopsis "FEST common utilities")
+ (description "Common utilities used in all FEST module.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #8: 0007-gnu-Add-java-fest-test.patch --]
[-- Type: text/x-patch, Size: 1555 bytes --]
From ca5d817578536b37b81946732946f9bf14eb306c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:15:30 +0200
Subject: [PATCH 07/22] gnu: Add java-fest-test.
* gnu/packages/java.scm (java-fest-test): New variable.
---
gnu/packages/java.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 9cb14cf27..8d2f94b84 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6395,3 +6395,26 @@ those in Perl and JavaScript.")
(synopsis "FEST common utilities")
(description "Common utilities used in all FEST module.")
(license license:asl2.0)))
+
+(define-public java-fest-test
+ (package
+ (name "java-fest-test")
+ (version "2.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/alexruiz/fest-test/"
+ "archive/fest-test-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1rxfbw6l9vc65iy1x3fb617qc6y4w2k430pgf1mfbxfdlxbm0f7g"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-fest-test.jar"
+ #:source-dir "src/main/java"
+ #:tests? #f)); no tests
+ (inputs
+ `(("junit" ,java-junit)))
+ (home-page "https://github.com/alexruiz/fest-test")
+ (synopsis "Common FEST testing infrastructure")
+ (description "Fest-test contains the common FEST testing infrastructure.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #9: 0008-gnu-Add-java-fest-assert.patch --]
[-- Type: text/x-patch, Size: 2183 bytes --]
From 4f9002fdbd0daebebbfd3426ad7465d8ef9d5a9e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:16:10 +0200
Subject: [PATCH 08/22] gnu: Add java-fest-assert.
* gnu/packages/java.scm (java-fest-assert): New variable.
---
gnu/packages/java.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 8d2f94b84..10040fd0f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6418,3 +6418,40 @@ those in Perl and JavaScript.")
(synopsis "Common FEST testing infrastructure")
(description "Fest-test contains the common FEST testing infrastructure.")
(license license:asl2.0)))
+
+(define-public java-fest-assert
+ (package
+ (name "java-fest-assert")
+ (version "2.0M10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/alexruiz/fest-assert-2.x/"
+ "archive/fest-assert-core-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bi0iqavikzww6rxvz5jyg7y6bflv95s6ibryxx0xfcxrrw6i5lw"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-fest-assert.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude
+ (list
+ "**/Abstract*.java"
+ "**/*BaseTest.java"
+ ;; Unable to set MockitoNamingPolicy on cglib generator which creates FastClasses
+ "**/MessageFormatter_format_Test.java"
+ "**/internal/*/*_assert*_Test.java")))
+ (inputs
+ `(("java-fest-util" ,java-fest-util)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-fest-test" ,java-fest-test)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-mockito" ,java-mockito-1)
+ ("java-cglib" ,java-cglib)
+ ("java-objenesis" ,java-objenesis)
+ ("java-asm" ,java-asm)))
+ (home-page "https://github.com/alexruiz/fest-assert-2.x")
+ (synopsis "FEST fluent assertions")
+ (description "FEST-Assert provides a fluent interface for assertions.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #10: 0009-gnu-Add-java-testng.patch --]
[-- Type: text/x-patch, Size: 3214 bytes --]
From d689aaea1993a7c51516139864adf78dd65dfcff Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:18:59 +0200
Subject: [PATCH 09/22] gnu: Add java-testng.
* gnu/packages/java.scm (java-testng): New variable.
---
gnu/packages/java.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 10040fd0f..947ccfbd9 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6455,3 +6455,63 @@ those in Perl and JavaScript.")
(synopsis "FEST fluent assertions")
(description "FEST-Assert provides a fluent interface for assertions.")
(license license:asl2.0)))
+
+(define-public java-testng
+ (package
+ (name "java-testng")
+ (version "6.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/cbeust/testng/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "01j2x47wkj7n5w6gpcjfbwgc88ai5654b23lb87w7nsrj63m3by6"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jdk ,icedtea-8; java.util.function
+ #:jar-name "java-testng.jar"
+ #:source-dir "src/main/java"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (add-before 'check 'copy-test-resources
+ (lambda _
+ (copy-recursively "src/test/resources" "build/test-classes")
+ #t))
+ (replace 'check
+ (lambda _
+ (system* "ant" "compile-tests")
+ ;; we don't have groovy
+ (substitute* "src/test/resources/testng.xml"
+ (("<class name=\"test.groovy.GroovyTest\" />") ""))
+ (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":build/classes"
+ ":build/test-classes")
+ "-Dtest.resources.dir=src/test/resources"
+ "org.testng.TestNG" "src/test/resources/testng.xml")))))))
+ (propagated-inputs
+ `(("junit" ,java-junit)
+ ("java-jsr305" ,java-jsr305)
+ ("java-bsh" ,java-bsh)
+ ("java-jcommander" ,java-jcommander)
+ ("java-guice" ,java-guice)
+ ("snakeyaml" ,java-snakeyaml)))
+ (native-inputs
+ `(("guava" ,java-guava)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-hamcrest" ,java-hamcrest-all)
+ ("java-assertj" ,java-assertj)
+ ("cglib" ,java-cglib)
+ ("asm" ,java-asm)
+ ("aopalliance" ,java-aopalliance)))
+ (home-page "http://testng.org")
+ (synopsis "Testing framework")
+ (description "TestNG is a testing framework inspired from JUnit and NUnit
+but introducing some new functionalities that make it more powerful and easier
+to use.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #11: 0010-gnu-Add-java-mvel2.patch --]
[-- Type: text/x-patch, Size: 5371 bytes --]
From ff6b73b44424949796b18689e4c5aba156573b41 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:30:48 +0200
Subject: [PATCH 10/22] gnu: Add java-mvel2.
* gnu/packages/java.scm (java-mvel2): New variable.
---
gnu/packages/java.scm | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 947ccfbd9..96976641f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6515,3 +6515,107 @@ those in Perl and JavaScript.")
but introducing some new functionalities that make it more powerful and easier
to use.")
(license license:asl2.0)))
+
+(define-public java-jnacl
+ (package
+ (name "java-jnacl")
+ (version "0.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/neilalexander/jnacl")
+ (commit "40c322e0a42637ab17cdf941138eeaf2494055f8")))
+ (sha256
+ (base32
+ "1pspnmp44q61a2q4bpslpxw86rfn8s5l0xgvyrikqgdvg7ypx597"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jnacl.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-tests
+ (lambda _
+ (substitute* "src/test/java/com/neilalexander/jnacl/NaClTest.java"
+ (("assertions.Assertions") "assertions.api.Assertions"))
+ (substitute* "src/test/java/com/neilalexander/jnacl/NaclSecretBoxTest.java"
+ (("assertions.Assertions") "assertions.api.Assertions"))
+ #t))
+ (replace 'check
+ (lambda _
+ (system* "ant" "compile-tests")
+ (and
+ (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":build/classes"
+ ":build/test-classes")
+ "org.testng.TestNG" "-testclass"
+ "build/test-classes/com/neilalexander/jnacl/NaclSecretBoxTest.class"))
+ (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":build/classes"
+ ":build/test-classes")
+ "org.testng.TestNG" "-testclass"
+ "build/test-classes/com/neilalexander/jnacl/NaClTest.class"))))))))
+ (native-inputs
+ `(("java-testng" ,java-testng)
+ ("java-fest-util" ,java-fest-util)
+ ("java-fest-assert" ,java-fest-assert)))
+ (home-page "https://github.com/neilalexander/jnacl")
+ (synopsis "Java implementation of NaCl")
+ (description "Pure Java implementation of the NaCl: Networking and
+Cryptography library.")
+ (license license:mpl2.0)))
+
+(define-public java-mvel2
+ (package
+ (name "java-mvel2")
+ (version "2.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mvel/mvel/archive/mvel2-"
+ version ".Final.tar.gz"))
+ (sha256
+ (base32
+ "01ph5s9gm16l2qz58lg21w6fna7xmmrj7f9bzqr1jim7h9557d3z"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "mvel2.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude
+ (list "**/Abstract*.java"
+ ;; Base class with no tests
+ "**/MVELThreadTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-bin
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (mkdir-p bin)
+ (with-output-to-file (string-append bin "/mvel2")
+ (lambda _
+ (display
+ (string-append
+ "#!" (which "bash") "\n"
+ "if [ \"$#\" -ne \"2\" ]; then\n"
+ "echo 'Usage: mvel2 <script> <out.dir>'\n"
+ "exit\n"
+ "fi\n"
+ "java -Dout.dir=$2 -cp " (getenv "CLASSPATH")
+ ":" (assoc-ref outputs "out") "/share/java/mvel2.jar"
+ " org.mvel2.sh.Main $1"))))
+ (chmod (string-append bin "/mvel2") #o755))
+ #t)))))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://github.com/mvel/mvel")
+ (synopsis "MVFLEX Expression Language")
+ (description "MVEL has largely been inspired by Java syntax, but has some
+fundamental differences aimed at making it more efficient as an expression
+language, such as operators that directly support collection, array and string
+matching, as well as regular expressions. MVEL is used to evaluate expressions
+written using Java syntax.
+
+In addition to the expression language, MVEL serves as a templating language for
+configuration and string construction.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #12: 0011-gnu-Add-java-lz4.patch --]
[-- Type: text/x-patch, Size: 1966 bytes --]
From af50ada5024ff18e2e7135c74ed89e46ad0d1e74 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:32:43 +0200
Subject: [PATCH 11/22] gnu: Add java-lz4.
* gnu/packages/java.scm (java-lz4): New variable.
---
gnu/packages/java.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 96976641f..19c3f116e 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6619,3 +6619,35 @@ written using Java syntax.
In addition to the expression language, MVEL serves as a templating language for
configuration and string construction.")
(license license:asl2.0)))
+
+(define-public java-lz4
+ (package
+ (name "java-lz4")
+ (version "1.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/lz4/lz4-java/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "096dm57p2lzqk28n0j2p52x2j3cvnsd2dfqn43n7vbwrkjsy7y54"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "lz4.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/java:src/java-unsafe"
+ #:tests? #f; FIXME: requires more dependencies
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'generate-source
+ (lambda _
+ (with-directory-excursion "src/build/source_templates"
+ (zero? (system* "mvel2" "../gen_sources.mvel" "../../java"))))))))
+ (native-inputs
+ `(("mvel" ,java-mvel2)))
+ (home-page "https://jpountz.github.io/lz4-java")
+ (synopsis "Compression algorithm")
+ (description "LZ4 - Java is a Java port of the popular lz4 compression
+algorithms and xxHash hashing algorithm.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #13: 0012-gnu-Add-java-bouncycastle-bcprov.patch --]
[-- Type: text/x-patch, Size: 1857 bytes --]
From 3ea3acbd6cc141687107b1ad2a14bad7cefb9ebe Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:36:11 +0200
Subject: [PATCH 12/22] gnu: Add java-bouncycastle-bcprov.
* gnu/packages/java.scm (java-bouncycastle-bcprov): New variable.
---
gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 19c3f116e..237f43431 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6651,3 +6651,34 @@ configuration and string construction.")
(description "LZ4 - Java is a Java port of the popular lz4 compression
algorithms and xxHash hashing algorithm.")
(license license:asl2.0)))
+
+(define-public java-bouncycastle-bcprov
+ (package
+ (name "java-bouncycastle-bcprov")
+ (version "1.58")
+ (source (origin
+ (method url-fetch)
+ (uri "https://bouncycastle.org/download/bcprov-jdk15on-158.tar.gz")
+ (sha256
+ (base32
+ "1hgkg96llbvgs8i0krwz2n0j7wlg6jfnq8w8kg0cc899j0wfmf3n"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "bouncycastle-bcprov.jar"
+ #:tests? #f; no tests
+ #:source-dir "src"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'unzip-src
+ (lambda _
+ (mkdir-p "src")
+ (with-directory-excursion "src"
+ (zero? (system* "unzip" "../src.zip"))))))))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("junit" ,java-junit)))
+ (home-page "https://www.bouncycastle.org")
+ (synopsis "Cryptographic library")
+ (description "Bouncy Castle Provider (bcprov) is a cryptographic library
+for the Java programming language.")
+ (license license:expat)))
--
2.14.3
[-- Attachment #14: 0013-gnu-Add-java-bouncycastle-bcpkix.patch --]
[-- Type: text/x-patch, Size: 1897 bytes --]
From b55a66d28b86bd2f7709e76f610c5ca65baaf550 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 24 Oct 2017 22:46:15 +0200
Subject: [PATCH 13/22] gnu: Add java-bouncycastle-bcpkix.
* gnu/packages/java.scm (java-bouncycastle-bcpkix): New variable.
---
gnu/packages/java.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 237f43431..966aa0e3a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6682,3 +6682,36 @@ algorithms and xxHash hashing algorithm.")
(description "Bouncy Castle Provider (bcprov) is a cryptographic library
for the Java programming language.")
(license license:expat)))
+
+(define-public java-bouncycastle-bcpkix
+ (package
+ (name "java-bouncycastle-bcpkix")
+ (version "1.58")
+ (source (origin
+ (method url-fetch)
+ (uri "https://bouncycastle.org/download/bcpkix-jdk15on-158.tar.gz")
+ (sha256
+ (base32
+ "0is7qay02803s9f7lhnfcjlz61ni3hq5d7apg0iil7nbqkbfbcq2"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "bouncycastle-bcpkix.jar"
+ #:tests? #f; no tests
+ #:source-dir "src"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'unzip-src
+ (lambda _
+ (mkdir-p "src")
+ (with-directory-excursion "src"
+ (zero? (system* "unzip" "../src.zip"))))))))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("junit" ,java-junit)))
+ (inputs
+ `(("bcprov" ,java-bouncycastle-bcprov)))
+ (home-page "https://www.bouncycastle.org")
+ (synopsis "Cryptographic library")
+ (description "Bouncy Castle Java API for PKIX, CMS, EAC, TSP, PKCS, OCSP,
+CMP, and CRMF.")
+ (license license:expat)))
--
2.14.3
[-- Attachment #15: 0014-gnu-Add-java-lmax-disruptor.patch --]
[-- Type: text/x-patch, Size: 2106 bytes --]
From 1e5bb92042d16260ff8f62ebae8afb1ffd651f0d Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 22:18:24 +0200
Subject: [PATCH 14/22] gnu: Add java-lmax-disruptor.
* gnu/packages/java.scm (java-lmax-disruptor): New variable.
---
gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 966aa0e3a..88750f10f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6715,3 +6715,38 @@ for the Java programming language.")
(description "Bouncy Castle Java API for PKIX, CMS, EAC, TSP, PKCS, OCSP,
CMP, and CRMF.")
(license license:expat)))
+
+(define-public java-lmax-disruptor
+ (package
+ (name "java-lmax-disruptor")
+ (version "3.3.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/LMAX-Exchange/disruptor/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17da2gwj5abnlsfgn2xqjk5lgzbg4vkb0hdv2dvc8r2fx4bi7w3g"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-lmax-disruptor.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f)); tests hang
+ (inputs
+ `(("junit" ,java-junit)
+ ("java-hdrhistogram" ,java-hdrhistogram)
+ ("java-jmock" ,java-jmock)
+ ("java-jmock-legacy" ,java-jmock-legacy)
+ ("java-jmock-junit4" ,java-jmock-junit4)
+ ("java-hamcrest-all" ,java-hamcrest-all)))
+ (native-inputs
+ `(("cglib" ,java-cglib)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)))
+ (home-page "https://www.lmax.com/disruptor")
+ (synopsis "High performance inter-thread communication")
+ (description "LMAX Disruptor is a software pattern and software component
+for high performance inter-thread communication that avoids the need for
+message queues or resource locking.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #16: 0015-gnu-Add-java-xerial-core.patch --]
[-- Type: text/x-patch, Size: 2116 bytes --]
From 33a59d9a2535632fd15c9d8f2e8ee610473b65c8 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 22:59:55 +0200
Subject: [PATCH 15/22] gnu: Add java-xerial-core.
* gnu/packages/java.scm (java-xerial-core): New variable.
---
gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 88750f10f..fd242c0f2 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6750,3 +6750,38 @@ CMP, and CRMF.")
for high performance inter-thread communication that avoids the need for
message queues or resource locking.")
(license license:asl2.0)))
+
+(define-public java-xerial-core
+ (package
+ (name "java-xerial-core")
+ (version "2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/xerial/xerial-java/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0d3g863i41bgalpa4xr3vm1h140l091n8iwgq5qvby5yivns9y8d"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "xerial-core.jar"
+ #:source-dir "xerial-core/src/main/java"
+ #:test-dir "xerial-core/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "xerial-core/src/main/resources"
+ "build/classes")
+ #t)))))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://github.com/xerial/xerial-java")
+ (synopsis "Data managment libraries for Java")
+ (description "Xerial is a set of data management libraries for the Java
+programming language. The ulitimate goal of the Xerial project is to manage
+everything as database, including class objects, text format data, data
+streams, etc.")
+ (license license:asl2.0)))
--
2.14.3
[-- Attachment #17: 0016-gnu-Add-java-powermock-reflect.patch --]
[-- Type: text/x-patch, Size: 13380 bytes --]
From d300f5ec70007f7554f14031b2af2def5ad3f439 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 23:05:10 +0200
Subject: [PATCH 16/22] gnu: Add java-powermock-reflect.
* gnu/packages/java.scm (java-powermock-reflect): New variable.
---
gnu/local.mk | 1 +
gnu/packages/java.scm | 38 +++++
.../patches/java-powermock-fix-java-files.patch | 178 +++++++++++++++++++++
3 files changed, 217 insertions(+)
create mode 100644 gnu/packages/patches/java-powermock-fix-java-files.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 90dc7aec1..8e562c018 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -744,6 +744,7 @@ dist_patch_DATA = \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
+ %D%/packages/patches/java-powermock-fix-java-files.patch \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
%D%/packages/patches/jbig2dec-CVE-2016-9601.patch \
%D%/packages/patches/jbig2dec-CVE-2017-7885.patch \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index fd242c0f2..a77e76ee3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6785,3 +6785,41 @@ programming language. The ulitimate goal of the Xerial project is to manage
everything as database, including class objects, text format data, data
streams, etc.")
(license license:asl2.0)))
+
+(define-public java-powermock-reflect
+ (package
+ (name "java-powermock-reflect")
+ (version "1.7.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/powermock/powermock/"
+ "archive/powermock-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sbgi5vqq7k72wzcdjb20s370vyd4hsbnx71pzb8ishml3gy7fwy"))
+ (patches
+ (search-patches "java-powermock-fix-java-files.patch"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-powermock-reflect.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "powermock-reflect/src/main/java"
+ #:test-dir "powermock-reflect/src/test"))
+ (inputs
+ `(("java-objenesis" ,java-objenesis)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("cglib" ,java-cglib)
+ ("asm" ,java-asm)
+ ("hamcrest" ,java-hamcrest-core)
+ ("assertj" ,java-assertj)))
+ (home-page "https://github.com/powermock/powermock")
+ (synopsis "Mock library extension framework")
+ (description "PowerMock is a framework that extends other mock libraries
+such as EasyMock with more powerful capabilities. PowerMock uses a custom
+classloader and bytecode manipulation to enable mocking of static methods,
+constructors, final classes and methods, private methods, removal of static
+initializers and more. By using a custom classloader no changes need to be
+done to the IDE or continuous integration servers which simplifies adoption.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/patches/java-powermock-fix-java-files.patch b/gnu/packages/patches/java-powermock-fix-java-files.patch
new file mode 100644
index 000000000..6b9581813
--- /dev/null
+++ b/gnu/packages/patches/java-powermock-fix-java-files.patch
@@ -0,0 +1,178 @@
+This patch fixes build issues caused by the java compiler not finding the
+correct types on some statements.
+
+From 1ac84b58b4383fa118d98c35956d722d11cf449e Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Tue, 22 Aug 2017 20:40:27 +0200
+Subject: [PATCH] Fix java files.
+
+---
+ .../internal/impl/DelegatingPowerMockRunner.java | 13 +++++++---
+ .../java/org/powermock/reflect/WhiteBoxTest.java | 30 +++++++++++-----------
+ .../reflect/internal/proxy/ClassFactory.java | 6 ++---
+ 3 files changed, 27 insertions(+), 22 deletions(-)
+
+diff --git a/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java b/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java
+index 301f854..caecbbd 100644
+--- a/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java
++++ b/powermock-modules/powermock-module-junit4/src/main/java/org/powermock/modules/junit4/internal/impl/DelegatingPowerMockRunner.java
+@@ -98,12 +98,17 @@ implements PowerMockJUnitRunnerDelegate, Filterable {
+ @Override
+ public Runner call() throws Exception {
+ try {
+- return Whitebox.invokeConstructor(
+- testClass.isAnnotationPresent(PowerMockRunnerDelegate.class)
+- ? testClass.getAnnotation(PowerMockRunnerDelegate.class).value()
+- : PowerMockRunnerDelegate.DefaultJUnitRunner.class,
++ if(testClass.isAnnotationPresent(PowerMockRunnerDelegate.class)) {
++ return Whitebox.invokeConstructor(
++ testClass.getAnnotation(PowerMockRunnerDelegate.class).value(),
+ new Class[] {Class.class},
+ new Object[] {testClass});
++ } else {
++ return Whitebox.invokeConstructor(
++ PowerMockRunnerDelegate.DefaultJUnitRunner.class,
++ new Class[] {Class.class},
++ new Object[] {testClass});
++ }
+ } catch (ConstructorNotFoundException rootProblem) {
+ if (testClass.isAnnotationPresent(PowerMockRunnerDelegate.class)
+ && JUnitVersion.isGreaterThanOrEqualTo("4.5")) {
+diff --git a/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java b/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
+index bf1e2e3..0d60487 100644
+--- a/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
++++ b/powermock-reflect/src/test/java/org/powermock/reflect/WhiteBoxTest.java
+@@ -248,7 +248,7 @@ public class WhiteBoxTest {
+
+ @Test
+ public void testMethodWithPrimitiveAndWrappedInt_primtive_wrapped() throws Exception {
+- assertEquals(17, Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",
++ assertEquals((Integer)17, Whitebox.invokeMethod(new ClassWithPrivateMethods(), "methodWithPrimitiveAndWrappedInt",
+ new Class[]{int.class, Integer.class}, 9, Integer.valueOf(8)));
+ }
+
+@@ -257,7 +257,7 @@ public class WhiteBoxTest {
+ int expected = 123;
+ Whitebox.setInternalState(ClassWithInternalState.class, "staticState", expected);
+ assertEquals(expected, ClassWithInternalState.getStaticState());
+- assertEquals(expected, Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));
++ assertEquals(expected, (int)Whitebox.getInternalState(ClassWithInternalState.class, "staticState"));
+ }
+
+ @Test
+@@ -334,25 +334,25 @@ public class WhiteBoxTest {
+ @Test
+ public void testInvokeVarArgsMethod_multipleValues() throws Exception {
+ ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
+- assertEquals(6, Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));
++ assertEquals(6, (int)Whitebox.invokeMethod(tested, "varArgsMethod", 1, 2, 3));
+ }
+
+ @Test
+ public void testInvokeVarArgsMethod_noArguments() throws Exception {
+ ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
+- assertEquals(0, Whitebox.invokeMethod(tested, "varArgsMethod"));
++ assertEquals(0, (int)Whitebox.invokeMethod(tested, "varArgsMethod"));
+ }
+
+ @Test
+ public void testInvokeVarArgsMethod_oneArgument() throws Exception {
+ ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
+- assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod", 2));
++ assertEquals(4, (int)Whitebox.invokeMethod(tested, "varArgsMethod", 2));
+ }
+
+ @Test
+ public void testInvokeVarArgsMethod_invokeVarArgsWithOneArgument() throws Exception {
+ ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
+- assertEquals(1, Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));
++ assertEquals(1, (int)Whitebox.invokeMethod(tested, "varArgsMethod", new Class<?>[]{int[].class}, 1));
+ }
+
+ @Test
+@@ -376,7 +376,7 @@ public class WhiteBoxTest {
+ ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
+ };
+ Whitebox.setInternalState(tested, fieldName, value);
+- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
+ }
+
+ @Test
+@@ -387,8 +387,8 @@ public class WhiteBoxTest {
+ ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
+ };
+ Whitebox.setInternalState(tested, fieldName, value);
+- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
+- assertEquals(-1, Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
++ assertEquals(-1, (int)Whitebox.getInternalState(tested, fieldName, ClassWithInternalState.class));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+@@ -398,7 +398,7 @@ public class WhiteBoxTest {
+ ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
+ };
+ Whitebox.setInternalState(tested, fieldName, new Object());
+- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+@@ -408,7 +408,7 @@ public class WhiteBoxTest {
+ ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState() {
+ };
+ Whitebox.setInternalState(tested, fieldName, (Object) null);
+- assertEquals(value, Whitebox.getInternalState(tested, fieldName));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, fieldName));
+ }
+
+ @Test
+@@ -417,8 +417,8 @@ public class WhiteBoxTest {
+ ClassWithChildThatHasInternalState tested = new ClassWithChildThatHasInternalState();
+ Whitebox.setInternalState(tested, int.class, value);
+ assertEquals(value, (int) Whitebox.getInternalState(tested, int.class));
+- assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState"));
+- assertEquals(value, Whitebox.getInternalState(tested, "anotherInternalState",
++ assertEquals(value, (int)Whitebox.getInternalState(tested, "anotherInternalState"));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, "anotherInternalState",
+ ClassWithChildThatHasInternalState.class));
+ }
+
+@@ -429,7 +429,7 @@ public class WhiteBoxTest {
+ Whitebox.setInternalState(tested, int.class, value, ClassWithInternalState.class);
+ assertEquals(42, (int) Whitebox.getInternalState(tested, int.class));
+ assertEquals(value, (int) Whitebox.getInternalState(tested, int.class, ClassWithInternalState.class));
+- assertEquals(value, Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));
++ assertEquals(value, (int)Whitebox.getInternalState(tested, "staticState", ClassWithInternalState.class));
+ }
+
+ @Test
+@@ -619,7 +619,7 @@ public class WhiteBoxTest {
+ @Test
+ public void testInvokeMethodWithBothNormalAndVarArgsParameter() throws Exception {
+ ClassWithPrivateMethods tested = new ClassWithPrivateMethods();
+- assertEquals(4, Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));
++ assertEquals(4, (int)Whitebox.invokeMethod(tested, "varArgsMethod2", 1, 2, 3));
+ }
+
+ @Test
+diff --git a/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java b/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
+index a5e5fda..14b8bbe 100644
+--- a/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
++++ b/powermock-reflect/src/test/java/org/powermock/reflect/internal/proxy/ClassFactory.java
+@@ -1,8 +1,8 @@
+ package org.powermock.reflect.internal.proxy;
+
+-import net.sf.cglib.asm.ClassWriter;
+-import net.sf.cglib.asm.MethodVisitor;
+-import net.sf.cglib.asm.Opcodes;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+
+ class ClassFactory implements Opcodes {
+
+--
+2.14.1
+
--
2.14.3
[-- Attachment #18: 0017-gnu-Add-java-powermock-core.patch --]
[-- Type: text/x-patch, Size: 1380 bytes --]
From 9abb44ce44f78c73fb396f19a00c7184f977781c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 23:07:04 +0200
Subject: [PATCH 17/22] gnu: Add java-powermock-core.
* gnu/packages/java.scm (java-powermock-core): New variable.
---
gnu/packages/java.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a77e76ee3..5161ab6f0 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6823,3 +6823,21 @@ constructors, final classes and methods, private methods, removal of static
initializers and more. By using a custom classloader no changes need to be
done to the IDE or continuous integration servers which simplifies adoption.")
(license license:asl2.0)))
+
+(define-public java-powermock-core
+ (package
+ (inherit java-powermock-reflect)
+ (name "java-powermock-core")
+ (arguments
+ `(#:jar-name "java-powermock-core.jar"
+ #:source-dir "powermock-core/src/main/java"
+ #:test-dir "powermock-core/src/test"
+ #:tests? #f; requires powermock-api
+ #:jdk ,icedtea-8))
+ (inputs
+ `(("reflect" ,java-powermock-reflect)
+ ("javassist" ,java-jboss-javassist)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("assertj" ,java-assertj)
+ ("mockito" ,java-mockito-1)))))
--
2.14.3
[-- Attachment #19: 0018-gnu-Add-java-powermock-api-support.patch --]
[-- Type: text/x-patch, Size: 1200 bytes --]
From 1b97f2c6508382eea93304d904a6edb3cf481a86 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 23:08:38 +0200
Subject: [PATCH 18/22] gnu: Add java-powermock-api-support.
* gnu/packages/java.scm (java-powermock-api-support): New variable.
---
gnu/packages/java.scm | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5161ab6f0..1e4c2506e 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6841,3 +6841,17 @@ done to the IDE or continuous integration servers which simplifies adoption.")
`(("junit" ,java-junit)
("assertj" ,java-assertj)
("mockito" ,java-mockito-1)))))
+
+(define-public java-powermock-api-support
+ (package
+ (inherit java-powermock-reflect)
+ (name "java-powermock-api-support")
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-powermock-api-support.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "powermock-api/powermock-api-support/src/main/java"
+ #:tests? #f)); no tests
+ (inputs
+ `(("core" ,java-powermock-core)
+ ("reflect" ,java-powermock-reflect)))))
--
2.14.3
[-- Attachment #20: 0019-gnu-Add-java-powermock-modules-junit4-common.patch --]
[-- Type: text/x-patch, Size: 1417 bytes --]
From bf3c6f0f7a8a9cacf7bdb331eba25d05d8f0ad3c Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 23:37:47 +0200
Subject: [PATCH 19/22] gnu: Add java-powermock-modules-junit4-common.
* gnu/packages/java.scm (java-powermock-modules-junit4-common): New
variable.
---
gnu/packages/java.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 1e4c2506e..82fd6567c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6855,3 +6855,20 @@ done to the IDE or continuous integration servers which simplifies adoption.")
(inputs
`(("core" ,java-powermock-core)
("reflect" ,java-powermock-reflect)))))
+
+(define-public java-powermock-modules-junit4-common
+ (package
+ (inherit java-powermock-reflect)
+ (name "java-powermock-modules-junit4-common")
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-powermock-modules-junit4-common.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "powermock-modules/powermock-module-junit4-common/src/main/java"
+ #:test-dir "powermock-modules/powermock-module-junit4-common/src/test"))
+ (inputs
+ `(("core" ,java-powermock-core)
+ ("easymock" ,java-easymock)
+ ("reflect" ,java-powermock-reflect)
+ ("hamcrest" ,java-hamcrest-core)
+ ("cglib" ,java-cglib)))))
--
2.14.3
[-- Attachment #21: 0020-gnu-Add-java-powermock-modules-junit4.patch --]
[-- Type: text/x-patch, Size: 1566 bytes --]
From bafaffa05b10b6ffa421896264f8ca57de0ea47a Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Wed, 25 Oct 2017 23:38:36 +0200
Subject: [PATCH 20/22] gnu: Add java-powermock-modules-junit4.
* gnu/packages/java.scm (java-powermock-modules-junit4): New variable.
---
gnu/packages/java.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 82fd6567c..aad89b38d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6872,3 +6872,25 @@ done to the IDE or continuous integration servers which simplifies adoption.")
("reflect" ,java-powermock-reflect)
("hamcrest" ,java-hamcrest-core)
("cglib" ,java-cglib)))))
+
+(define-public java-powermock-modules-junit4
+ (package
+ (inherit java-powermock-reflect)
+ (name "java-powermock-modules-junit4")
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-powermock-modules-junit4.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "powermock-modules/powermock-module-junit4/src/main/java"
+ #:test-dir "powermock-modules/powermock-module-junit4/src/test"))
+ (inputs
+ `(("core" ,java-powermock-core)
+ ("reflect" ,java-powermock-reflect)
+ ("common" ,java-powermock-modules-junit4-common)
+ ("cglib" ,java-cglib)))
+ (native-inputs
+ `(("easymock" ,java-easymock)
+ ("hamcrest" ,java-hamcrest-core)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)
+ ("junit" ,java-junit)))))
--
2.14.3
[-- Attachment #22: 0021-gnu-Add-java-powermock-api-easymock.patch --]
[-- Type: text/x-patch, Size: 1845 bytes --]
From acf289da757ac818563b32e2d98fdc9ec9ea1cd6 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Thu, 26 Oct 2017 00:06:55 +0200
Subject: [PATCH 21/22] gnu: Add java-powermock-api-easymock.
* gnu/packages/java.scm (java-powermock-api-easymock): New variable.
---
gnu/packages/java.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index aad89b38d..7b20a509f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6894,3 +6894,30 @@ done to the IDE or continuous integration servers which simplifies adoption.")
("objenesis" ,java-objenesis)
("asm" ,java-asm)
("junit" ,java-junit)))))
+
+(define-public java-powermock-api-easymock
+ (package
+ (inherit java-powermock-reflect)
+ (name "java-powermock-api-easymock")
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-powermock-api-easymock.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "powermock-api/powermock-api-easymock/src/main/java"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-file
+ (lambda _
+ ;; FIXME: This looks wrong, but it fixes a build error.
+ (with-directory-excursion "powermock-api/powermock-api-easymock"
+ (substitute* "src/main/java/org/powermock/api/easymock/PowerMock.java"
+ (("classLoader instanceof MockClassLoader") "false")
+ (("\\(\\(MockClassLoader\\) classLoader\\).*;") ";")))
+ #t)))))
+ (inputs
+ `(("core" ,java-powermock-core)
+ ("easymock" ,java-easymock)
+ ("reflect" ,java-powermock-reflect)
+ ("support" ,java-powermock-api-support)
+ ("cglib" ,java-cglib)))))
--
2.14.3
[-- Attachment #23: 0022-gnu-Add-java-plexus-classworlds.patch --]
[-- Type: text/x-patch, Size: 1872 bytes --]
From 49e607accf0f981e8a1c0df5914a9fd726d740cd Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Thu, 26 Oct 2017 00:24:17 +0200
Subject: [PATCH 22/22] gnu: Add java-plexus-classworlds.
* gnu/packages/java.scm (java-plexus-classworlds): New variable.
---
gnu/packages/java.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 7b20a509f..c65bddec3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2319,6 +2319,32 @@ package within @code{plexus-utils}, but has been separated in order to allow
these two libraries to vary independently of one another.")
(license license:asl2.0)))
+(define-public java-plexus-classworlds
+ (package
+ (name "java-plexus-classworlds")
+ (version "2.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/codehaus-plexus/"
+ "plexus-classworlds/archive/plexus-classworlds-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1qm4p0rl8d82lzhsiwnviw11jnq44s0gflg78zq152xyyr2xmh8g"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-classworlds.jar"
+ #:source-dir "src/main"
+ #:tests? #f));; FIXME: we need to generate some resources as in pom.xml
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (home-page "http://codehaus-plexus.github.io/plexus-classworlds/")
+ (synopsis "Java class loader framework")
+ (description "Plexus classworlds replaces the native ClassLoader mechanism
+of Java. It is especially usefull for dynamic loading of application
+components.")
+ (license license:asl2.0)))
+
(define-public java-asm
(package
(name "java-asm")
--
2.14.3
^ permalink raw reply related [flat|nested] 6+ messages in thread