You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:56:30 UTC
[sling-org-apache-sling-paxexam-util] 03/15: Take sling.run.modes
into account
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.paxexam.util-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-paxexam-util.git
commit f2653fbfa2b279c8451c7a9bfc66fe8def796834
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Wed Nov 6 14:54:25 2013 +0000
Take sling.run.modes into account
git-svn-id: https://svn.apache.org/repos/asf/sling/whiteboard/bdelacretaz/sling-pax-util@1539355 13f79535-47bb-0310-9956-ffa450edef68
---
.../apache/sling/paxexam/util/SlingPaxOptions.java | 29 +++++++++++++++++++---
.../sling/paxexam/util/SlingRepositoryTest.java | 9 ++++++-
2 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java b/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java
index ddf833c..acbf777 100644
--- a/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java
+++ b/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java
@@ -30,6 +30,8 @@ import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.List;
import org.apache.sling.maven.projectsupport.BundleListUtils;
@@ -52,6 +54,7 @@ public class SlingPaxOptions {
public static final int DEFAULT_SLING_START_LEVEL = 30;
public static final String PROP_TELNET_PORT = "osgi.shell.telnet.port";
public static final String PROP_HTTP_PORT = "org.osgi.service.http.port";
+ public static final String DEFAULT_RUN_MODES = "jackrabbit";
private static int getAvailablePort() {
int result = Integer.MIN_VALUE;
@@ -64,6 +67,12 @@ public class SlingPaxOptions {
return result;
}
+ /** Get run modes to use for our tests, as set by the sling.run.modes property */
+ public static Collection<String> getTestRunModes() {
+ final String runModes = System.getProperty("sling.run.modes", DEFAULT_RUN_MODES);
+ return Arrays.asList(runModes.split(","));
+ }
+
public static CompositeOption defaultLaunchpadOptions() {
final String paxLogLevel = System.getProperty("pax.exam.log.level", "INFO");
@@ -106,6 +115,7 @@ public class SlingPaxOptions {
// TODO BundleList should take an InputStream - for now copy to a tmp file for parsing
log.info("Getting bundle list {}", paxUrl);
File tmp = null;
+ final Collection<String> testRunModes = getTestRunModes();
try {
tmp = dumpMvnUrlToTmpFile(paxUrl);
final BundleList list = BundleListUtils.readBundleList(tmp);
@@ -124,10 +134,21 @@ public class SlingPaxOptions {
KNOWN_FRAGMENTS.add("org.apache.sling.extensions.webconsolebranding");
final boolean isFragment = b.getArtifactId().contains("fragment") || KNOWN_FRAGMENTS.contains(b.getArtifactId());
- // TODO need to handle sling run modes
- if(b.getArtifactId().contains("oak")) {
- log.warn("Ignoring bundle due to hard-coded TODO condition: {}", b.getArtifactId());
- continue;
+ // Ignore bundles with run modes that do not match ours
+ final String bundleRunModes = b.getRunModes();
+ if(bundleRunModes != null && bundleRunModes.length() > 0) {
+ boolean active = false;
+ for(String m : bundleRunModes.split(",")) {
+ if(testRunModes.contains(m)) {
+ active = true;
+ break;
+ }
+ }
+ if(!active) {
+ log.info("Ignoring bundle {} as none of its run modes [{}] are active in this test run {}",
+ new Object[] { b.getArtifactId(), bundleRunModes, testRunModes} );
+ continue;
+ }
}
if(isFragment) {
diff --git a/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java b/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java
index 0a21f29..dadecf1 100644
--- a/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java
+++ b/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java
@@ -47,7 +47,14 @@ public class SlingRepositoryTest {
@Test
public void testNameDescriptor() {
- assertEquals("Jackrabbit", repository.getDescriptor("jcr.repository.name"));
+ // We could use JUnit categories to select tests, as we
+ // do in our integration, but let's avoid a dependency on
+ // that in this module
+ if(System.getProperty("sling.run.modes", "").contains("oak")) {
+ assertEquals("Apache Jackrabbit Oak", repository.getDescriptor("jcr.repository.name"));
+ } else {
+ assertEquals("Jackrabbit", repository.getDescriptor("jcr.repository.name"));
+ }
}
@Test
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.