You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/05/28 12:32:52 UTC
[sling-org-apache-sling-testing-paxexam] 04/04: SLING-8432 Provide
support for running the Pax Exam tests on Java 9 and higher
This is an automated email from the ASF dual-hosted git repository.
olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-paxexam.git
commit a63b64ced730b9dfd9ba3ae6b9e2ecceb400d840
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Tue May 28 14:32:17 2019 +0200
SLING-8432 Provide support for running the Pax Exam tests on Java 9 and higher
---
.../apache/sling/testing/paxexam/SlingOptions.java | 20 ++++++++++++++++++++
.../sling/testing/paxexam/SlingVersionResolver.java | 18 ++++++++++++++++++
.../apache/sling/testing/paxexam/TestSupport.java | 4 +++-
src/main/resources/templates/SlingOptions.hbs | 20 ++++++++++++++++++++
.../resources/templates/SlingVersionResolver.hbs | 18 ++++++++++++++++++
.../testing/paxexam/it/SlingOptionsTestSupport.java | 4 +++-
6 files changed, 82 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java b/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
index 013e431..bcb0bf3 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
@@ -25,6 +25,7 @@ import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemPackages;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import static org.ops4j.pax.exam.CoreOptions.vmOption;
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
@@ -35,6 +36,25 @@ public class SlingOptions {
public static SlingVersionResolver versionResolver = new SlingVersionResolver();
+ public static ModifiableCompositeOption backing() {
+ final int version = SlingVersionResolver.getJavaVersion();
+ if (version >= 11) {
+ return composite(
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.annotation-api-1.3").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.activation-api-1.1").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.stax-api-1.2").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.jaxb-api-2.2").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.jaxb-impl").version(versionResolver)
+ );
+ } else if (version >= 9) {
+ return composite(
+ vmOption("--add-modules=java.se.ee")
+ );
+ } else {
+ return composite();
+ }
+ }
+
public static ModifiableCompositeOption config() {
return composite(
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.configadmin").version(versionResolver)
diff --git a/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java b/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
index 08e780d..12e4a1d 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
@@ -34,6 +34,11 @@ public class SlingVersionResolver implements VersionResolver {
public static final String SLING_GROUP_ID = "org.apache.sling";
public SlingVersionResolver() {
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.annotation-api-1.3", "1.3_1");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.activation-api-1.1", "2.9.0");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.stax-api-1.2", "1.2_1");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2", "2.9.0");
+ versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl", "2.2.11_1");
versions.put("org.apache.sling:org.apache.sling.scripting.jsp-api", "1.0.0");
versions.put("org.apache.sling:org.apache.sling.scripting.el-api", "1.0.0");
versions.put("org.apache.felix:org.apache.felix.configadmin", "1.9.10");
@@ -260,4 +265,17 @@ public class SlingVersionResolver implements VersionResolver {
return versions.get(key(groupId, artifactId));
}
+ public static int getJavaVersion() {
+ final String version = System.getProperty("java.specification.version");
+ try {
+ if (version.contains(".")) {
+ return Integer.parseInt(version.split("\\.")[1]);
+ } else {
+ return Integer.parseInt(version);
+ }
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ }
+
}
diff --git a/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java b/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
index d21eaf4..c51a760 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
@@ -33,6 +33,7 @@ import org.ops4j.pax.exam.util.PathUtils;
import org.ops4j.pax.tinybundles.core.TinyBundle;
import org.osgi.service.cm.ConfigurationAdmin;
+import static org.apache.sling.testing.paxexam.SlingOptions.backing;
import static org.apache.sling.testing.paxexam.SlingOptions.paxTinybundles;
import static org.ops4j.pax.exam.CoreOptions.bundle;
import static org.ops4j.pax.exam.CoreOptions.composite;
@@ -79,7 +80,8 @@ public abstract class TestSupport {
repository("https://repository.apache.org/snapshots/").id("apache-snapshots").allowSnapshots(),
CoreOptions.workingDirectory(workingDirectory()),
mavenBundle().groupId("org.apache.sling").artifactId("org.apache.sling.testing.paxexam").versionAsInProject(),
- paxTinybundles()
+ paxTinybundles(),
+ backing()
);
}
diff --git a/src/main/resources/templates/SlingOptions.hbs b/src/main/resources/templates/SlingOptions.hbs
index 77d6be4..f56eb7a 100644
--- a/src/main/resources/templates/SlingOptions.hbs
+++ b/src/main/resources/templates/SlingOptions.hbs
@@ -25,6 +25,7 @@ import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemPackages;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+import static org.ops4j.pax.exam.CoreOptions.vmOption;
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.factoryConfiguration;
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
@@ -35,6 +36,25 @@ public class SlingOptions {
public static SlingVersionResolver versionResolver = new SlingVersionResolver();
+ public static ModifiableCompositeOption backing() {
+ final int version = SlingVersionResolver.getJavaVersion();
+ if (version >= 11) {
+ return composite(
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.annotation-api-1.3").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.activation-api-1.1").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.stax-api-1.2").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.specs").artifactId("org.apache.servicemix.specs.jaxb-api-2.2").version(versionResolver),
+ mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.jaxb-impl").version(versionResolver)
+ );
+ } else if (version >= 9) {
+ return composite(
+ vmOption("--add-modules=java.se.ee")
+ );
+ } else {
+ return composite();
+ }
+ }
+
public static ModifiableCompositeOption config() {
return composite(
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.configadmin").version(versionResolver)
diff --git a/src/main/resources/templates/SlingVersionResolver.hbs b/src/main/resources/templates/SlingVersionResolver.hbs
index bb343a8..5d2f1dd 100644
--- a/src/main/resources/templates/SlingVersionResolver.hbs
+++ b/src/main/resources/templates/SlingVersionResolver.hbs
@@ -34,6 +34,11 @@ public class SlingVersionResolver implements VersionResolver {
public static final String SLING_GROUP_ID = "org.apache.sling";
public SlingVersionResolver() {
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.annotation-api-1.3", "1.3_1");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.activation-api-1.1", "2.9.0");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.stax-api-1.2", "1.2_1");
+ versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2", "2.9.0");
+ versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl", "2.2.11_1");
versions.put("org.apache.sling:org.apache.sling.scripting.jsp-api", "1.0.0");
versions.put("org.apache.sling:org.apache.sling.scripting.el-api", "1.0.0");
versions.put("org.apache.felix:org.apache.felix.configadmin", "1.9.10");
@@ -82,4 +87,17 @@ public class SlingVersionResolver implements VersionResolver {
return versions.get(key(groupId, artifactId));
}
+ public static int getJavaVersion() {
+ final String version = System.getProperty("java.specification.version");
+ try {
+ if (version.contains(".")) {
+ return Integer.parseInt(version.split("\\.")[1]);
+ } else {
+ return Integer.parseInt(version);
+ }
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ }
+
}
diff --git a/src/test/java/org/apache/sling/testing/paxexam/it/SlingOptionsTestSupport.java b/src/test/java/org/apache/sling/testing/paxexam/it/SlingOptionsTestSupport.java
index 02e8504..87c1ef5 100644
--- a/src/test/java/org/apache/sling/testing/paxexam/it/SlingOptionsTestSupport.java
+++ b/src/test/java/org/apache/sling/testing/paxexam/it/SlingOptionsTestSupport.java
@@ -25,6 +25,7 @@ import org.ops4j.pax.exam.CoreOptions;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.util.PathUtils;
+import static org.apache.sling.testing.paxexam.SlingOptions.backing;
import static org.ops4j.pax.exam.CoreOptions.bundle;
import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.keepCaches;
@@ -45,7 +46,8 @@ public abstract class SlingOptionsTestSupport {
keepCaches(),
localMavenRepo(),
CoreOptions.workingDirectory(workingDirectory()),
- testBundle("bundle.filename")
+ testBundle("bundle.filename"),
+ backing()
);
}