Author: davide
Date: Wed Sep  3 08:41:08 2014
New Revision: 1622182

URL: http://svn.apache.org/r1622182
Log:
OAK-1855 - Travis builds time out

Split of the build in multiple profiles and adding of the FixtureHelper.

Added:
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/FixturesHelper.java
    
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
      - copied, changed from r1622032, 
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java
Removed:
    
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java
Modified:
    jackrabbit/oak/trunk/.travis.yml
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/AbstractRepositoryTest.java
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderedIndexConcurrentClusterIT.java
    
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
    jackrabbit/oak/trunk/oak-parent/pom.xml
    jackrabbit/oak/trunk/oak-solr-core/pom.xml

Modified: jackrabbit/oak/trunk/.travis.yml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/.travis.yml?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- jackrabbit/oak/trunk/.travis.yml (original)
+++ jackrabbit/oak/trunk/.travis.yml Wed Sep  3 08:41:08 2014
@@ -14,7 +14,12 @@
 # limitations under the License.
 
 install:  true
-script:   mvn verify -Ppedantic,integrationTesting
+env:
+  - PROFILE=pedantic
+  - PROFILE=unittesting
+  - PROFILE=integrationTesting FIXTURES="-Dns-fixtures=SEGMENT_MK" 
SUREFIRE_SKIP="-Dsurefire.skip.ut=true"
+  - PROFILE=integrationTesting 
FIXTURES="-Dns-fixtures=DOCUMENT_MK,DOCUMENT_NS,DOCUMENT_JDBC" 
SUREFIRE_SKIP="-Dsurefire.skip.ut=true"
+script:   "mvn verify -P${PROFILE} ${FIXTURES} ${SUREFIRE_SKIP}"
 language: java
 jdk:
   - oraclejdk7

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/AbstractRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/AbstractRepositoryTest.java?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/AbstractRepositoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/AbstractRepositoryTest.java
 Wed Sep  3 08:41:08 2014
@@ -31,6 +31,7 @@ import javax.jcr.security.Privilege;
 
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import 
org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
+import org.apache.jackrabbit.oak.jcr.FixturesHelper.Fixture;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.junit.After;
@@ -60,19 +61,7 @@ public abstract class AbstractRepository
      * whitespace-separated list of fixtures names for which the
      * tests should be run (the default is to use all fixtures).
      */
-    private static Set<String> FIXTURES;
-    static {
-        String raw = System.getProperty("ns-fixtures", "");
-        String[] fs = raw.split("\\s");
-        Set<String> tmp = new HashSet<String>();
-        for (String f : fs) {
-            String x = f.trim();
-            if (x.length() > 0) {
-                tmp.add(f.trim());
-            }
-        }
-        FIXTURES = Collections.unmodifiableSet(tmp);
-    }
+    private static final Set<Fixture> FIXTURES = FixturesHelper.getFixtures();
 
     public AbstractRepositoryTest(NodeStoreFixture fixture) {
         this.fixture = fixture;
@@ -81,16 +70,16 @@ public abstract class AbstractRepository
     @Parameterized.Parameters
     public static Collection<Object[]> fixtures() {
         Collection<Object[]> result = new ArrayList<Object[]>();
-        if (FIXTURES.isEmpty() || FIXTURES.contains("DOCUMENT_MK")) {
+        if (FIXTURES.contains(Fixture.DOCUMENT_MK)) {
             result.add(new Object[] { NodeStoreFixture.DOCUMENT_MK });
         }
-        if (FIXTURES.isEmpty() || FIXTURES.contains("DOCUMENT_NS")) {
+        if (FIXTURES.contains(Fixture.DOCUMENT_NS)) {
             result.add(new Object[] { NodeStoreFixture.DOCUMENT_NS });
         }
-        if (FIXTURES.isEmpty() || FIXTURES.contains("SEGMENT_MK")) {
+        if (FIXTURES.contains(Fixture.SEGMENT_MK)) {
             result.add(new Object[] { NodeStoreFixture.SEGMENT_MK });
         }
-        if (FIXTURES.isEmpty() || FIXTURES.contains("DOCUMENT_JDBC")) {
+        if (FIXTURES.contains(Fixture.DOCUMENT_JDBC)) {
             result.add(new Object[] { NodeStoreFixture.DOCUMENT_JDBC });
         }
         return result;

Added: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/FixturesHelper.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/FixturesHelper.java?rev=1622182&view=auto
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/FixturesHelper.java
 (added)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/FixturesHelper.java
 Wed Sep  3 08:41:08 2014
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.jcr;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * helper class that return the list of available fixtures based on the {@code 
ns-fixtures} system
+ * property ({@code -Dns-fixtures=SEGMENT_MK}).
+ * 
+ * See {@link FixturesHelper#Fixture} for a list of available fixtures
+ */
+public class FixturesHelper {
+    /**
+     * splitter for specifying multiple fixtures
+     */
+    
+    private static final String SPLIT_ON = ","; 
+    /**
+     * System property to be used.
+     */
+    public static final String NS_FIXTURES = "ns-fixtures";
+    
+    /**
+     * default fixtures when no {@code ns-fixtures} is provided
+     */
+    public static enum Fixture {
+       DOCUMENT_MK, DOCUMENT_NS, SEGMENT_MK, DOCUMENT_JDBC                     
                     
+    };
+    
+    private static final Set<Fixture> FIXTURES;
+    static {
+        String raw = System.getProperty(NS_FIXTURES, "");
+        if (raw.trim().isEmpty()) {
+            FIXTURES = Collections.unmodifiableSet(new 
HashSet<Fixture>(Arrays.asList(Fixture
+                .values())));
+        } else {
+            String[] fs = raw.split(SPLIT_ON);
+            Set<Fixture> tmp = new HashSet<Fixture>();
+            for (String f : fs) {
+                String x = f.trim();
+                Fixture fx = Fixture.valueOf(x.toUpperCase());
+                if (fx != null) {
+                    tmp.add(fx);
+                }
+            }
+            
+            if (tmp.isEmpty()) {
+                FIXTURES = Collections.unmodifiableSet(new 
HashSet<Fixture>(Arrays.asList(Fixture
+                    .values())));
+            } else {
+                FIXTURES = Collections.unmodifiableSet(tmp);
+            }
+            
+        }
+    }
+
+    public static Set<Fixture> getFixtures() {
+        return FIXTURES;
+    }
+}

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderedIndexConcurrentClusterIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderedIndexConcurrentClusterIT.java?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderedIndexConcurrentClusterIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderedIndexConcurrentClusterIT.java
 Wed Sep  3 08:41:08 2014
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.jcr.Credentials;
 import javax.jcr.Node;
@@ -36,6 +37,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
+import org.apache.jackrabbit.oak.jcr.FixturesHelper.Fixture;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
@@ -57,6 +59,7 @@ public class OrderedIndexConcurrentClust
     private static final Credentials ADMIN = new SimpleCredentials("admin", 
"admin".toCharArray());
     private static final String INDEX_NODE_NAME = "lastModified";
     private static final String INDEX_PROPERTY = "lastModified";
+    private static final Set<Fixture> FIXTURES = FixturesHelper.getFixtures();
     
     private List<Repository> repos = new ArrayList<Repository>();
     private List<DocumentMK> mks = new ArrayList<DocumentMK>();
@@ -66,6 +69,12 @@ public class OrderedIndexConcurrentClust
     // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
     
     @BeforeClass
+    public static void fixturesCheck() {
+        // running only on DocumentNS case
+        Assume.assumeTrue(FIXTURES.contains(Fixture.DOCUMENT_NS));
+    }
+    
+    @BeforeClass
     public static void mongoDBAvailable() {
         final boolean mongoAvailable = 
OakMongoMKRepositoryStub.isMongoDBAvailable();
         if (!mongoAvailable) {

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
 Wed Sep  3 08:41:08 2014
@@ -22,7 +22,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 
+import org.apache.jackrabbit.oak.jcr.FixturesHelper;
+import org.apache.jackrabbit.oak.jcr.FixturesHelper.Fixture;
 import org.apache.jackrabbit.oak.jcr.OakDocumentRDBRepositoryStub;
 import org.apache.jackrabbit.oak.jcr.OakMongoNSRepositoryStub;
 import org.apache.jackrabbit.oak.jcr.OakTarMKRepositoryStub;
@@ -40,6 +43,8 @@ import junit.framework.TestSuite;
  */
 public abstract class TCKBase extends TestSuite {
 
+    private static final Set<Fixture> FIXTURES = FixturesHelper.getFixtures();
+    
     static {
         SLF4JBridgeHandler.removeHandlersForRootLogger();
         SLF4JBridgeHandler.install();
@@ -47,12 +52,18 @@ public abstract class TCKBase extends Te
 
     public TCKBase(String name) {
         super(name);
-        Setup.wrap(this, OakTarMKRepositoryStub.class.getName());
-        if (OakMongoNSRepositoryStub.isMongoDBAvailable()) {
-            Setup.wrap(this, OakMongoNSRepositoryStub.class.getName());
+        if (FIXTURES.contains(Fixture.SEGMENT_MK)) {
+            Setup.wrap(this, OakTarMKRepositoryStub.class.getName());
         }
-        if (OakDocumentRDBRepositoryStub.isAvailable()) {
-            Setup.wrap(this, OakDocumentRDBRepositoryStub.class.getName());
+        if (FIXTURES.contains(Fixture.DOCUMENT_NS)) {
+            if (OakMongoNSRepositoryStub.isMongoDBAvailable()) {
+                Setup.wrap(this, OakMongoNSRepositoryStub.class.getName());
+            }            
+        }
+        if (FIXTURES.contains(Fixture.DOCUMENT_JDBC)) {
+            if (OakDocumentRDBRepositoryStub.isAvailable()) {
+                Setup.wrap(this, OakDocumentRDBRepositoryStub.class.getName());
+            }            
         }
     }
 

Modified: jackrabbit/oak/trunk/oak-parent/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-parent/pom.xml?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-parent/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-parent/pom.xml Wed Sep  3 08:41:08 2014
@@ -59,6 +59,16 @@
     <slf4j.version>1.7.6</slf4j.version> <!-- sync with logback version -->
     <logback.version>1.1.0</logback.version>
     <h2.version>1.3.176</h2.version>
+
+   <!-- specifies on which fixture to run the integration testing tests. 
+      override in profiles or provide from command line to change behaviour. 
Provide 
+      more fixtures space separated. See 
org.apache.jackrabbit.oak.jcr.FixturesHelper#AVAILABLE_FIXTURES 
+      for the possible values: SEGMENT_MK DOCUMENT_MK DOCUMENT_NS 
DOCUMENT_JDBC -->
+    <fixtures>SEGMENT_MK</fixtures>
+
+   <!-- whether skip the surefire unit testing during the integration testing. 
+      Override with -Dsurefire.skip.ut=true when needed -->
+    <surefire.skip.ut>false</surefire.skip.ut>
   </properties>
 
   <issueManagement>
@@ -172,6 +182,7 @@
               <mongo.db>${mongo.db}</mongo.db>
               <mongo.db2>${mongo.db2}</mongo.db2>
               <segment.db>${segment.db}</segment.db>
+              <ns-fixtures>${fixtures}</ns-fixtures>
             </systemPropertyVariables>
             <redirectTestOutputToFile>true</redirectTestOutputToFile>
           </configuration>
@@ -186,6 +197,7 @@
               <mongo.port>${mongo.port}</mongo.port>
               <mongo.db>${mongo.db}</mongo.db>
               <mongo.db2>${mongo.db2}</mongo.db2>
+              <ns-fixtures>${fixtures}</ns-fixtures>
             </systemPropertyVariables>
           </configuration>
         </plugin>
@@ -416,7 +428,24 @@
   </dependencyManagement>
 
   <profiles>
+    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  Unit 
testing profiles -->
     <profile>
+         <id>unittesting</id>
+         <properties>
+            <!-- emptying $fixtures means run on all -->
+            <fixtures />
+         </properties>
+         <build>
+            <plugins>
+              <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+              </plugin>
+            </plugins>
+         </build>
+    </profile>
+    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Integration 
testing profiles -->
+    <profile>
+      <!-- runs all the IT agains the default fixture. See <properties> 
section -->
       <id>integrationTesting</id>
       <activation>
         <property>
@@ -425,6 +454,12 @@
       </activation>
       <build>
         <plugins>
+           <plugin>
+             <artifactId>maven-surefire-plugin</artifactId>
+             <configuration>
+               <skipTests>${surefire.skip.ut}</skipTests>
+             </configuration>
+           </plugin>
           <plugin>
             <artifactId>maven-failsafe-plugin</artifactId>
             <executions>
@@ -439,10 +474,18 @@
         </plugins>
       </build>
     </profile>
+
+    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- other profiles -->
     <profile>
       <id>pedantic</id>
       <build>
         <plugins>
+           <plugin>
+             <artifactId>maven-surefire-plugin</artifactId>
+             <configuration>
+               <skipTests>true</skipTests>
+             </configuration>
+           </plugin>
           <plugin>
             <groupId>org.apache.rat</groupId>
             <artifactId>apache-rat-plugin</artifactId>

Modified: jackrabbit/oak/trunk/oak-solr-core/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/pom.xml?rev=1622182&r1=1622181&r2=1622182&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-solr-core/pom.xml Wed Sep  3 08:41:08 2014
@@ -86,22 +86,6 @@
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-scr-plugin</artifactId>
             </plugin>
-            <plugin>
-                <artifactId>maven-failsafe-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>integration-test</goal>
-                            <goal>verify</goal>
-                        </goals>
-                        <configuration>
-                            <includes>
-                                <include>**/*IT.java</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
         </plugins>
     </build>
 

Copied: 
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
 (from r1622032, 
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java)
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java?p2=jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java&p1=jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java&r1=1622032&r2=1622182&rev=1622182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
 Wed Sep  3 08:41:08 2014
@@ -49,7 +49,7 @@ import static org.junit.Assume.assumeTru
 /**
  * General query extensive testcase for {@link SolrQueryIndex}
  */
-public class SolrIndexQueryTest extends AbstractQueryTest {
+public class SolrIndexQueryTestIT extends AbstractQueryTest {
 
     private SolrServer solrServer;
 


Reply via email to