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>.