aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2017-10-04 20:08:52 +0200
committerJulien Lepiller <julien@lepiller.eu>2017-10-10 22:05:29 +0200
commit7a7c2b7556114e08d70213c67d0368d66f2fddca (patch)
tree5ef47e471057382f7144d78f1992f4e5e58de4ba /gnu
parente179add07b28fdf015d508850e6f3a48372c7311 (diff)
downloadgnu-guix-7a7c2b7556114e08d70213c67d0368d66f2fddca.tar
gnu-guix-7a7c2b7556114e08d70213c67d0368d66f2fddca.tar.gz
gnu: Add java-ops4j-pax-exam-core-spi.
* gnu/packages/java.scm (java-ops4j-pax-exam-core-spi): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/java.scm56
1 files changed, 56 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 2783565495..07648a9d57 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -5587,3 +5587,59 @@ to create those artifacts.")
the user take control of the OSGi framework, the test framework (e.g. JUnit) and
the system under test at the same time.")
(license license:asl2.0)))
+
+(define-public java-ops4j-pax-exam-core-spi
+ (package
+ (inherit java-ops4j-pax-exam-core)
+ (name "java-ops4j-pax-exam-core-spi")
+ (arguments
+ `(#:jar-name "java-ops4j-pax-exam-spi.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude
+ (list
+ ;; Abstract base class, not a test
+ "**/BaseStagedReactorTest.java"
+ ;; Depends on org.mortbay.jetty.testwars:test-war-dump
+ "**/WarBuilderTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ ;; Tests assume we are in this directory
+ (chdir "core/pax-exam-spi")))
+ (add-before 'check 'fix-tests
+ (lambda _
+ ;; One test checks that this file is present.
+ (mkdir-p "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi")
+ (with-output-to-file
+ "build/classes/META-INF/maven/org.ops4j.pax.exam/pax-exam-spi/pom.properties"
+ (lambda _
+ (display
+ (string-append "artifactId = pax-exam-spi\n"
+ "version = " ,(package-version java-ops4j-pax-exam-core-spi)))))
+ ;; Maven puts compilation results in the target directory, while we
+ ;; put them in the build directory.
+ (substitute* '("src/test/java/org/ops4j/pax/exam/spi/war/WarBuilderTest.java"
+ "src/test/java/org/ops4j/pax/exam/spi/war/WarTestProbeBuilderTest.java"
+ "src/test/java/org/ops4j/pax/exam/spi/war/ZipBuilderTest.java")
+ (("target") "build"))
+ ;; One test is expected to fail, but it doesn't throw the expected exception
+ (substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java"
+ (("AssertionError") "IllegalArgumentException")))))))
+ (inputs
+ `(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core)
+ ("lang" ,java-ops4j-base-lang)
+ ("monitors" ,java-ops4j-base-monitors)
+ ("store" ,java-ops4j-base-store)
+ ("io" ,java-ops4j-base-io)
+ ("spi" ,java-ops4j-base-spi)
+ ("osgi" ,java-osgi-core)
+ ("slf4j" ,java-slf4j-api)
+ ("tinybundles" ,java-ops4j-pax-tinybundles)))
+ (native-inputs
+ `(("mockito" ,java-mockito-1)
+ ("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)
+ ("cglib" ,java-cglib)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)))))