You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/11/06 15:54:25 UTC

svn commit: r1539355 - in /sling/whiteboard/bdelacretaz/sling-pax-util: ./ src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java

Author: bdelacretaz
Date: Wed Nov  6 14:54:25 2013
New Revision: 1539355

URL: http://svn.apache.org/r1539355
Log:
Take sling.run.modes into account

Modified:
    sling/whiteboard/bdelacretaz/sling-pax-util/   (props changed)
    sling/whiteboard/bdelacretaz/sling-pax-util/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java
    sling/whiteboard/bdelacretaz/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java

Propchange: sling/whiteboard/bdelacretaz/sling-pax-util/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Nov  6 14:54:25 2013
@@ -10,3 +10,4 @@ bin
 maven-eclipse.xml
 derby.log
 jackrabbit
+oak

Modified: sling/whiteboard/bdelacretaz/sling-pax-util/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/sling-pax-util/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java?rev=1539355&r1=1539354&r2=1539355&view=diff
==============================================================================
--- sling/whiteboard/bdelacretaz/sling-pax-util/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java (original)
+++ sling/whiteboard/bdelacretaz/sling-pax-util/src/main/java/org/apache/sling/paxexam/util/SlingPaxOptions.java Wed Nov  6 14:54:25 2013
@@ -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) {

Modified: sling/whiteboard/bdelacretaz/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java?rev=1539355&r1=1539354&r2=1539355&view=diff
==============================================================================
--- sling/whiteboard/bdelacretaz/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java (original)
+++ sling/whiteboard/bdelacretaz/sling-pax-util/src/test/java/org/apache/sling/paxexam/util/SlingRepositoryTest.java Wed Nov  6 14:54:25 2013
@@ -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