You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2018/02/18 00:47:23 UTC

[11/52] [abbrv] [partial] maven-surefire git commit: [SUREFIRE-1471] Too long Windows path cause CI issues. Renamed surefire-intergation-tests to surefire-its.

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test1.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test1.java b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test1.java
new file mode 100644
index 0000000..7497816
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test1.java
@@ -0,0 +1,67 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.Random;
+
+import junit.framework.TestCase;
+
+public class Test1
+    extends TestCase
+{
+
+    private static final Random RANDOM = new Random();
+
+    public void test1()
+        throws IOException, InterruptedException
+    {
+        int sleepLength = Integer.valueOf( System.getProperty( "sleepLength", "1500" ));
+        Thread.sleep(sleepLength);
+        dumpPidFile( this );
+    }
+
+    public static void dumpPidFile( TestCase test )
+        throws IOException
+    {
+        String fileName = test.getName() + "-pid";
+        File target = new File( "target" ).getCanonicalFile();  // getCanonicalFile required for embedded mode
+        if ( !( target.exists() && target.isDirectory() ) )
+        {
+            target = new File( "." );
+        }
+        File pidFile = new File( target, fileName );
+        FileWriter fw = new FileWriter( pidFile );
+        // DGF little known trick... this is guaranteed to be unique to the PID
+        // In fact, it usually contains the pid and the local host name!
+        String pid = ManagementFactory.getRuntimeMXBean().getName();
+        fw.write( pid );
+        fw.write( " " );
+        fw.write( System.getProperty( "testProperty", String.valueOf( RANDOM.nextLong() ) ) );
+        fw.flush();
+        fw.close();
+        System.out.println( "Done Writing pid file" + pidFile.getAbsolutePath() );
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test2.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test2.java b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test2.java
new file mode 100644
index 0000000..e9d0652
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test2.java
@@ -0,0 +1,36 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class Test2
+    extends TestCase
+{
+
+    public void test2() throws IOException, InterruptedException {
+        int sleepLength = Integer.valueOf( System.getProperty( "sleepLength", "1500" ));
+        Thread.sleep(sleepLength);
+        Test1.dumpPidFile(this);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test3.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test3.java b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test3.java
new file mode 100644
index 0000000..c8eef74
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-multimodule/module-b/src/test/java/forkMode/Test3.java
@@ -0,0 +1,34 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class Test3
+    extends TestCase
+{
+
+    public void test3() throws IOException {
+        Test1.dumpPidFile(this);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-multimodule/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-multimodule/pom.xml b/surefire-its/src/test/resources/fork-mode-multimodule/pom.xml
new file mode 100644
index 0000000..e0786b1
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-multimodule/pom.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-mode-multimodule</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for forkMode Multimodule</name>
+
+  <packaging>pom</packaging>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <modules>
+    <module>module-a</module>
+    <module>module-b</module>
+  </modules>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
+        <configuration>
+          <forkMode>${forkMode}</forkMode>
+          <threadCount>${threadCount}</threadCount>
+          <runOrder>alphabetical</runOrder>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-resource-loading/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-resource-loading/pom.xml b/surefire-its/src/test/resources/fork-mode-resource-loading/pom.xml
new file mode 100644
index 0000000..e40033c
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-resource-loading/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-mode-resource-loading</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for forkMode</name>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/java/forkMode/ResourceLoadTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/java/forkMode/ResourceLoadTest.java b/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/java/forkMode/ResourceLoadTest.java
new file mode 100644
index 0000000..e2c3d51
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/java/forkMode/ResourceLoadTest.java
@@ -0,0 +1,46 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import junit.framework.TestCase;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+public class ResourceLoadTest
+    extends TestCase
+{
+
+    public void testGetResourceUrl() throws IOException {
+        final URL resource = this.getClass().getClassLoader().getResource( "myFile.txt" );
+        assertNotNull(  resource );
+    }
+
+    public void testGetResource() throws IOException {
+        final InputStream resource = this.getClass().getClassLoader().getResourceAsStream( "myFile.txt" );
+        assertNotNull(  resource );
+    }
+
+    public void testGetResourceThreadLoader() throws IOException {
+        final InputStream resource = Thread.currentThread().getContextClassLoader().getResourceAsStream( "myFile.txt" );
+        assertNotNull(  resource );
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/resources/myFile.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/resources/myFile.txt b/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/resources/myFile.txt
new file mode 100644
index 0000000..51f466f
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-resource-loading/src/test/resources/myFile.txt
@@ -0,0 +1 @@
+A file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-testng/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-testng/pom.xml b/surefire-its/src/test/resources/fork-mode-testng/pom.xml
new file mode 100644
index 0000000..8e25749
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-testng/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ~ 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. -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-mode-testng</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for forkMode</name>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
+        <configuration>
+          <forkMode>${forkMode}</forkMode>
+          <threadCount>${threadCount}</threadCount>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.testng</groupId>
+      <artifactId>testng</artifactId>
+      <version>5.7</version>
+      <classifier>jdk15</classifier>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <!-- NOTE: Deliberately excluding junit to enforce TestNG only tests, cf. SUREFIRE-642 -->
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java
new file mode 100644
index 0000000..8caec4e
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test1.java
@@ -0,0 +1,65 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.Random;
+
+import org.testng.annotations.Test;
+
+public class Test1
+{
+
+	private static final Random RANDOM = new Random();
+	
+    @Test
+    public void test1()
+        throws IOException, InterruptedException
+    {
+        int sleepLength = Integer.valueOf( System.getProperty( "sleepLength", "750" ));
+        Thread.sleep(sleepLength);
+        dumpPidFile( "test1" );
+    }
+
+    public static void dumpPidFile( String name )
+        throws IOException
+    {
+        String fileName = name + "-pid";
+        File target = new File( "target" ).getCanonicalFile();
+        if ( !( target.exists() && target.isDirectory() ) )
+        {
+            target = new File( "." );
+        }
+        File pidFile = new File( target, fileName );
+        FileWriter fw = new FileWriter( pidFile );
+        // DGF little known trick... this is guaranteed to be unique to the PID
+        // In fact, it usually contains the pid and the local host name!
+        String pid = ManagementFactory.getRuntimeMXBean().getName();
+        fw.write( pid );
+        fw.write( " " );
+        fw.write( System.getProperty( "testProperty", String.valueOf( RANDOM.nextLong() ) ) );
+        fw.flush();
+        fw.close();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java
new file mode 100644
index 0000000..d7e8be9
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test2.java
@@ -0,0 +1,33 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import org.testng.annotations.Test;
+
+public class Test2
+{
+    @Test
+    public void test2() throws IOException {
+        Test1.dumpPidFile( "test2" );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java
new file mode 100644
index 0000000..e52f2b7
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode-testng/src/test/java/forkMode/Test3.java
@@ -0,0 +1,34 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import org.testng.annotations.Test;
+
+public class Test3
+{
+
+    @Test
+    public void test3() throws IOException {
+        Test1.dumpPidFile( "test3" );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode/pom.xml b/surefire-its/src/test/resources/fork-mode/pom.xml
new file mode 100644
index 0000000..28bfb4d
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode/pom.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-mode</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for forkMode</name>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
+        <configuration>
+          <forkMode>${forkMode}</forkMode>
+          <threadCount>${threadCount}</threadCount>
+          <runOrder>alphabetical</runOrder>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test1.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test1.java b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test1.java
new file mode 100644
index 0000000..980123c
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test1.java
@@ -0,0 +1,67 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.Random;
+
+import junit.framework.TestCase;
+
+public class Test1
+    extends TestCase
+{
+
+    private static final Random RANDOM = new Random();
+
+    public void test1()
+        throws IOException, InterruptedException
+    {
+        int sleepLength = Integer.valueOf( System.getProperty( "sleepLength", "750" ));
+        Thread.sleep(sleepLength);
+        dumpPidFile( this );
+    }
+
+    public static void dumpPidFile( TestCase test )
+        throws IOException
+    {
+        String fileName = test.getName() + "-pid";
+        File target = new File( "target" ).getCanonicalFile();  // getCanonicalFile required for embedded mode
+        if ( !( target.exists() && target.isDirectory() ) )
+        {
+            target = new File( "." );
+        }
+        File pidFile = new File( target, fileName );
+        FileWriter fw = new FileWriter( pidFile );
+        // DGF little known trick... this is guaranteed to be unique to the PID
+        // In fact, it usually contains the pid and the local host name!
+        String pid = ManagementFactory.getRuntimeMXBean().getName();
+        fw.write( pid );
+        fw.write( " " );
+        fw.write( System.getProperty( "testProperty", String.valueOf( RANDOM.nextLong() ) ) );
+        fw.flush();
+        fw.close();
+        System.out.println( "Done Writing pid file" + pidFile.getAbsolutePath() );
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test2.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test2.java b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test2.java
new file mode 100644
index 0000000..33d3cf1
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test2.java
@@ -0,0 +1,34 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class Test2
+    extends TestCase
+{
+
+    public void test2() throws IOException {
+        Test1.dumpPidFile(this);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test3.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test3.java b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test3.java
new file mode 100644
index 0000000..c8eef74
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-mode/src/test/java/forkMode/Test3.java
@@ -0,0 +1,34 @@
+package forkMode;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+public class Test3
+    extends TestCase
+{
+
+    public void test3() throws IOException {
+        Test1.dumpPidFile(this);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/pom.xml b/surefire-its/src/test/resources/fork-timeout/pom.xml
new file mode 100644
index 0000000..25365a2
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/pom.xml
@@ -0,0 +1,47 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-timeout-test</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>fork-timeout</name>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <junit.version>4.8.1</junit.version>
+    <junit.parallel>classes</junit.parallel>
+    <forkMode>once</forkMode>
+    <timeOut>1</timeOut>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+  <dependencies>
+      <dependency>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+          <version>${junit.version}</version>
+      </dependency>
+  </dependencies>
+  <build>
+     <plugins>
+        <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
+           <artifactId>maven-surefire-plugin</artifactId>
+           <version>${surefire.version}</version>
+           <configuration>
+             <forkMode>${forkMode}</forkMode>
+             <parallel>${junit.parallel}</parallel>
+             <threadCount>3</threadCount>
+             <perCoreThreadCount>false</perCoreThreadCount>
+             <redirectTestOutputToFile>true</redirectTestOutputToFile>
+             <forkedProcessTimeoutInSeconds>${timeOut}</forkedProcessTimeoutInSeconds>
+             <reportFormat>plain</reportFormat>
+             <useFile>true</useFile>
+             <includes>
+                <include>**/Test*.java</include>
+             </includes>
+           </configuration>
+        </plugin>
+     </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java
new file mode 100644
index 0000000..a2dc6cb
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java
@@ -0,0 +1,53 @@
+package forktimeout;
+
+/*
+ * 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.
+ */
+
+public abstract class BaseForkTimeout
+{
+    protected void dumpStuff( String prefix )
+    {
+        reallySleep( 990 );
+        for ( int i = 0; i < 200; i++ )
+        {
+            System.out.println( prefix + " with lots of output " + i );
+            System.err.println( prefix + "e with lots of output " + i );
+        }
+        System.out.println( prefix + "last line" );
+        System.err.println( prefix + "e last line" );
+    }
+
+    private void reallySleep( long timeout )
+    {
+        long endAt = System.currentTimeMillis() + timeout;
+        try
+        {
+            Thread.sleep( timeout );
+            while ( System.currentTimeMillis() < endAt )
+            {
+                Thread.yield();
+                Thread.sleep( 5 );
+            }
+        }
+        catch ( InterruptedException e )
+        {
+            throw new RuntimeException( e );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java
new file mode 100644
index 0000000..d176fce
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java
@@ -0,0 +1,34 @@
+package forktimeout;
+
+/*
+ * 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.
+ */
+
+import org.junit.Test;
+
+public class Test1
+    extends BaseForkTimeout
+{
+    @Test
+    public void test690()
+    {
+        dumpStuff( "test690" );
+        System.out.println( " with lots of output " );
+        System.err.println( "e with lots of output " );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java
new file mode 100644
index 0000000..25b0ecd
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java
@@ -0,0 +1,30 @@
+package forktimeout;
+/*
+ * 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.
+ */
+
+
+import org.junit.Test;
+
+public class Test2 extends BaseForkTimeout
+{
+    @Test
+    public void test690_2() {
+        dumpStuff( "test690_2" );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java
new file mode 100644
index 0000000..b618bdb
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java
@@ -0,0 +1,32 @@
+package forktimeout;
+/*
+ * 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.
+ */
+
+
+import org.junit.Test;
+
+public class Test3 extends BaseForkTimeout
+{
+
+    @Test
+    public void test690_3() {
+        dumpStuff( "test690_3" );
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java
new file mode 100644
index 0000000..4582c65
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java
@@ -0,0 +1,32 @@
+package forktimeout;
+/*
+ * 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.
+ */
+
+
+import org.junit.Test;
+
+public class Test4
+    extends BaseForkTimeout
+{
+    @Test
+    public void test690_4() {
+        dumpStuff( "test690_4" );
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java
new file mode 100644
index 0000000..886385d
--- /dev/null
+++ b/surefire-its/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java
@@ -0,0 +1,32 @@
+package forktimeout;
+/*
+ * 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.
+ */
+
+
+import org.junit.Test;
+
+public class Test5
+    extends BaseForkTimeout
+{
+    @Test
+    public void test690_5() {
+        dumpStuff( "test690_5" );
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/common-excludes.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/common-excludes.txt b/surefire-its/src/test/resources/includes-excludes-from-file/common-excludes.txt
new file mode 100644
index 0000000..483aae3
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/common-excludes.txt
@@ -0,0 +1,3 @@
+# common excludes
+
+**/DontRunTest.*
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/path-includes.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/path-includes.txt b/surefire-its/src/test/resources/includes-excludes-from-file/path-includes.txt
new file mode 100644
index 0000000..cedff2a
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/path-includes.txt
@@ -0,0 +1,3 @@
+# path includes
+
+*/test/*

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/pom.xml b/surefire-its/src/test/resources/includes-excludes-from-file/pom.xml
new file mode 100644
index 0000000..39313db
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/pom.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>maven-it-includes-excludes</artifactId>
+  <version>1.0-SNAPSHOT</version>
+
+  <name>Maven Integration Test :: includes-excludes-from-file</name>
+  <description>Test surefire inclusion/exclusions from files</description>
+
+  <properties>
+    <junit.version>3.8.2</junit.version>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <artifactId>junit</artifactId>
+      <groupId>junit</groupId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.version}</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>simple</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/common-excludes.txt</excludesFile>
+              <includesFile>${project.basedir}/simple-includes.txt</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>simple-mixed</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/common-excludes.txt</excludesFile>
+              <includes>
+                <include>**/NotIncludedByDefault.java</include>
+              </includes>
+              <includesFile>${project.basedir}/simple-mixed-includes.txt</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>regex</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/common-excludes.txt</excludesFile>
+              <includesFile>${project.basedir}/regex-includes.txt</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>path</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/common-excludes.txt</excludesFile>
+              <includesFile>${project.basedir}/path-includes.txt</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>missing-excludes-file</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/no-such-excludes-file</excludesFile>
+              <includesFile>${project.basedir}/simple-includes.txt</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+    <profile>
+      <id>missing-includes-file</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludesFile>${project.basedir}/common-excludes.txt</excludesFile>
+              <includesFile>${project.basedir}/no-such-includes-file</includesFile>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
+  </profiles>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/regex-includes.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/regex-includes.txt b/surefire-its/src/test/resources/includes-excludes-from-file/regex-includes.txt
new file mode 100644
index 0000000..fcf6f9e
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/regex-includes.txt
@@ -0,0 +1,3 @@
+# regex includes
+
+%regex[.*Test.*|.*Not.*]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/simple-includes.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/simple-includes.txt b/surefire-its/src/test/resources/includes-excludes-from-file/simple-includes.txt
new file mode 100644
index 0000000..d2b1d12
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/simple-includes.txt
@@ -0,0 +1,4 @@
+# simple includes
+
+**/NotIncludedByDefault.java
+**/*Test.java
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/simple-mixed-includes.txt
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/simple-mixed-includes.txt b/surefire-its/src/test/resources/includes-excludes-from-file/simple-mixed-includes.txt
new file mode 100644
index 0000000..68a1d5c
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/simple-mixed-includes.txt
@@ -0,0 +1,3 @@
+# simple-mixed includes
+
+**/*Test.java
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DefaultTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DefaultTest.java b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DefaultTest.java
new file mode 100644
index 0000000..be6a6bb
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DefaultTest.java
@@ -0,0 +1,34 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import java.io.FileOutputStream;
+
+public class DefaultTest
+{
+    public void testRun()
+        throws Exception
+    {
+        FileOutputStream fout = new FileOutputStream( "target/defaultTestTouchFile.txt" );
+        fout.write( '!' );
+        fout.flush();
+        fout.close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DontRunTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DontRunTest.java b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DontRunTest.java
new file mode 100644
index 0000000..0cce390
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/DontRunTest.java
@@ -0,0 +1,30 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import junit.framework.TestCase;
+
+public class DontRunTest extends TestCase
+{
+    public void testRun()
+    {
+        assertEquals(true, false);
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/NotIncludedByDefault.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/NotIncludedByDefault.java b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/NotIncludedByDefault.java
new file mode 100644
index 0000000..58b962a
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/NotIncludedByDefault.java
@@ -0,0 +1,34 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import java.io.FileOutputStream;
+
+public class NotIncludedByDefault
+{
+    public void testRun()
+        throws Exception
+    {
+        FileOutputStream fout = new FileOutputStream( "target/testTouchFile.txt" );
+        fout.write( '!' );
+        fout.flush();
+        fout.close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/aTestXmlFile.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/aTestXmlFile.xml b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/aTestXmlFile.xml
new file mode 100644
index 0000000..17f382f
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes-from-file/src/test/java/org/test/aTestXmlFile.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project>
+    <foo/>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes/pom.xml b/surefire-its/src/test/resources/includes-excludes/pom.xml
new file mode 100644
index 0000000..77711f7
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes/pom.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>maven-it-includes-excludes</artifactId>
+  <version>1.0-SNAPSHOT</version>
+
+  <name>Maven Integration Test :: includes-excludes</name>
+  <description>Test surefire inclusion/exclusions</description>
+
+  <properties>
+    <junit.version>3.8.2</junit.version>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <artifactId>junit</artifactId>
+      <groupId>junit</groupId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.version}</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+  <profiles>
+    <profile>
+      <id>simple</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludes>
+                <exclude>**/DontRunTest.*</exclude>
+                <exclude></exclude>
+                <exclude />
+              </excludes>
+              <includes>
+                <include>**/NotIncludedByDefault.java</include>
+                <include>**/*Test.java</include>
+              </includes>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>regex</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludes>
+                <exclude>**/DontRunTest.*</exclude>
+              </excludes>
+              <includes>
+                <include>%regex[.*Test.*|.*Not.*]</include>
+              </includes>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>path</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <excludes>
+                <exclude>**/DontRunTest.java</exclude>
+              </excludes>
+              <includes>
+                <include>*/test/*</include>
+              </includes>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+      <profile>
+        <id>withXmlFile</id>
+        <build>
+          <plugins>
+            <plugin>
+              <artifactId>maven-surefire-plugin</artifactId>
+              <configuration>
+                  <excludes>
+                    <exclude>**/DontRunTest.java</exclude>
+                  </excludes>
+                <includes>
+                  <include>**/*.xml</include>
+                </includes>
+              </configuration>
+            </plugin>
+          </plugins>
+        </build>
+      </profile>
+
+  </profiles>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DefaultTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DefaultTest.java b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DefaultTest.java
new file mode 100644
index 0000000..be6a6bb
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DefaultTest.java
@@ -0,0 +1,34 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import java.io.FileOutputStream;
+
+public class DefaultTest
+{
+    public void testRun()
+        throws Exception
+    {
+        FileOutputStream fout = new FileOutputStream( "target/defaultTestTouchFile.txt" );
+        fout.write( '!' );
+        fout.flush();
+        fout.close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DontRunTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DontRunTest.java b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DontRunTest.java
new file mode 100644
index 0000000..0cce390
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/DontRunTest.java
@@ -0,0 +1,30 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import junit.framework.TestCase;
+
+public class DontRunTest extends TestCase
+{
+    public void testRun()
+    {
+        assertEquals(true, false);
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/NotIncludedByDefault.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/NotIncludedByDefault.java b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/NotIncludedByDefault.java
new file mode 100644
index 0000000..58b962a
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/NotIncludedByDefault.java
@@ -0,0 +1,34 @@
+package org.test;
+
+/*
+ * 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.
+ */
+
+import java.io.FileOutputStream;
+
+public class NotIncludedByDefault
+{
+    public void testRun()
+        throws Exception
+    {
+        FileOutputStream fout = new FileOutputStream( "target/testTouchFile.txt" );
+        fout.write( '!' );
+        fout.flush();
+        fout.close();
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/aTestXmlFile.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/aTestXmlFile.xml b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/aTestXmlFile.xml
new file mode 100644
index 0000000..17f382f
--- /dev/null
+++ b/surefire-its/src/test/resources/includes-excludes/src/test/java/org/test/aTestXmlFile.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project>
+    <foo/>
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/isolated-classloader/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/isolated-classloader/pom.xml b/surefire-its/src/test/resources/isolated-classloader/pom.xml
new file mode 100644
index 0000000..a853063
--- /dev/null
+++ b/surefire-its/src/test/resources/isolated-classloader/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>isolated-classloader</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for useSystemClassLoader=false</name>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.version}</version>
+        <configuration>
+          <useSystemClassLoader>false</useSystemClassLoader>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/isolated-classloader/src/test/java/isolatedClassloader/BasicTest.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/isolated-classloader/src/test/java/isolatedClassloader/BasicTest.java b/surefire-its/src/test/resources/isolated-classloader/src/test/java/isolatedClassloader/BasicTest.java
new file mode 100644
index 0000000..f293734
--- /dev/null
+++ b/surefire-its/src/test/resources/isolated-classloader/src/test/java/isolatedClassloader/BasicTest.java
@@ -0,0 +1,86 @@
+package isolatedClassloader;
+
+/*
+ * 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.
+ */
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class BasicTest
+    extends TestCase
+{
+
+    private boolean setUpCalled = false;
+
+    private static boolean tearDownCalled = false;
+
+    public BasicTest( String name, String extraName )
+    {
+        super( name );
+    }
+
+    public static Test suite()
+    {
+        TestSuite suite = new TestSuite();
+        Test test = new BasicTest( "testSetUp", "dummy" );
+        suite.addTest( test );
+
+        return new TestSetup( suite )
+        {
+
+            protected void setUp()
+            {
+                //oneTimeSetUp();
+            }
+
+            protected void tearDown()
+            {
+                oneTimeTearDown();
+            }
+
+        };
+    }
+
+    protected void setUp()
+    {
+        setUpCalled = true;
+        tearDownCalled = false;
+        System.out.println( "Called setUp" );
+    }
+
+    protected void tearDown()
+    {
+        setUpCalled = false;
+        tearDownCalled = true;
+        System.out.println( "Called tearDown" );
+    }
+
+    public void testSetUp()
+    {
+        assertTrue( "setUp was not called", setUpCalled );
+    }
+
+    public static void oneTimeTearDown()
+    {
+        assertTrue( "tearDown was not called", tearDownCalled );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/java9-full-api/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/java9-full-api/pom.xml b/surefire-its/src/test/resources/java9-full-api/pom.xml
new file mode 100644
index 0000000..2e4d4f3
--- /dev/null
+++ b/surefire-its/src/test/resources/java9-full-api/pom.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.maven.surefire</groupId>
+        <artifactId>it-parent</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>java9-full-api</artifactId>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <forkMode>once</forkMode>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <forkMode>once</forkMode>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>javax.transaction-api</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.ws</groupId>
+            <artifactId>jaxws-api</artifactId>
+            <version>2.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+           <version>2.3.0</version>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>use-jvm-config-paramater</id>
+            <activation>
+                <property>
+                    <name>jdk.home</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <jvm>${jdk.home}/bin/java</jvm>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>use-toolchains</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-toolchains-plugin</artifactId>
+                        <version>1.1</version>
+                        <executions>
+                            <execution>
+                                <phase>validate</phase>
+                                <goals>
+                                    <goal>toolchain</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <toolchains>
+                                <jdk>
+                                    <version>9</version>
+                                </jdk>
+                            </toolchains>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/java9-full-api/src/test/java/J9IT.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/java9-full-api/src/test/java/J9IT.java b/surefire-its/src/test/resources/java9-full-api/src/test/java/J9IT.java
new file mode 100644
index 0000000..c74678d
--- /dev/null
+++ b/surefire-its/src/test/resources/java9-full-api/src/test/java/J9IT.java
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+import org.junit.Test;
+
+public class J9IT
+{
+    @Test
+    public void testMiscellaneousAPI() throws java.sql.SQLException
+    {
+        System.out.println( "loaded class " + java.sql.SQLException.class.getName() );
+        System.out.println( "loaded class " + javax.xml.ws.Holder.class.getName() );
+        System.out.println( "loaded class " + javax.xml.bind.JAXBException.class.getName() );
+        System.out.println( "loaded class " + javax.transaction.InvalidTransactionException.class.getName() );
+        System.out.println( "from classloader " + javax.transaction.InvalidTransactionException.class.getClassLoader() );
+        System.out.println( "loaded class " + javax.transaction.TransactionManager.class.getName() );
+        System.out.println( "loaded class " + javax.xml.xpath.XPath.class.getName() );
+        System.out.println( "java.specification.version=" + System.getProperty( "java.specification.version" ) );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/java9-full-api/src/test/java/J9Test.java
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/java9-full-api/src/test/java/J9Test.java b/surefire-its/src/test/resources/java9-full-api/src/test/java/J9Test.java
new file mode 100644
index 0000000..6fc8536
--- /dev/null
+++ b/surefire-its/src/test/resources/java9-full-api/src/test/java/J9Test.java
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+import org.junit.Test;
+
+public class J9Test
+{
+    @Test
+    public void testMiscellaneousAPI() throws java.sql.SQLException
+    {
+        System.out.println( "loaded class " + java.sql.SQLException.class.getName() );
+        System.out.println( "loaded class " + javax.xml.ws.Holder.class.getName() );
+        System.out.println( "loaded class " + javax.xml.bind.JAXBException.class.getName() );
+        System.out.println( "loaded class " + javax.transaction.InvalidTransactionException.class.getName() );
+        System.out.println( "loaded class " + javax.transaction.TransactionManager.class.getName() );
+        System.out.println( "loaded class " + javax.xml.xpath.XPath.class.getName() );
+        System.out.println( "java.specification.version=" + System.getProperty( "java.specification.version" ) );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/4d00932a/surefire-its/src/test/resources/junit-fork-mode-always/pom.xml
----------------------------------------------------------------------
diff --git a/surefire-its/src/test/resources/junit-fork-mode-always/pom.xml b/surefire-its/src/test/resources/junit-fork-mode-always/pom.xml
new file mode 100644
index 0000000..9b86c75
--- /dev/null
+++ b/surefire-its/src/test/resources/junit-fork-mode-always/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>testng-fork-mode</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Test for forkMode</name>
+
+  <properties>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+	    <version>${surefire.version}</version>
+        <configuration>
+          <forkMode>${forkMode}</forkMode>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.8.2</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>