summary refs log tree commit diff
diff options
context:
space:
mode:
-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)))))