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;