Bumped Maven to 3.6.2

migrated aether to maven-provider

fixes gh-1218
This commit is contained in:
Marcin Grzejszczak
2019-09-19 17:02:29 +02:00
parent 2437cd341b
commit b59398878f
12 changed files with 236 additions and 299 deletions

View File

@@ -0,0 +1,81 @@
/*
* Copyright 2013-2019 the original author or authors.
*
* Licensed 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
*
* https://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.springframework.cloud.contract.maven.verifier;
import java.io.File;
import java.io.IOException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.project.MavenProject;
import org.assertj.core.api.BDDAssertions;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
import org.springframework.boot.test.system.OutputCaptureRule;
import org.springframework.util.FileSystemUtils;
public abstract class AbstractMojoTest {
@Rule
public MojoRule rule = new MojoRule() {
@Override
protected void before() throws Throwable {
}
@Override
protected void after() {
}
};
@Rule
public TemporaryFolder tmp = new TemporaryFolder();
@Rule
public OutputCaptureRule capture = new OutputCaptureRule();
File tmpFolder;
@Before
public void setupTemp() throws IOException {
this.tmpFolder = this.tmp.newFolder();
File projects = new File("src/test/projects");
FileSystemUtils.copyRecursively(projects, this.tmpFolder);
}
protected File getBasedir(String name) {
return new File(this.tmpFolder, name);
}
protected void executeMojo(File baseDir, String goal, Xpp3Dom... parameters)
throws Exception {
MavenProject mavenProject = rule.readMavenProject(baseDir);
MavenSession mavenSession = rule.newMavenSession(mavenProject);
rule.executeMojo(mavenSession, mavenProject, goal, parameters);
}
protected void assertFilesPresent(File file, String name) {
BDDAssertions.then(new File(file, name)).exists();
}
protected void assertFilesNotPresent(File file, String name) {
BDDAssertions.then(new File(file, name)).doesNotExist();
}
}

View File

@@ -1,128 +0,0 @@
/*
* Copyright 2013-2019 the original author or authors.
*
* Licensed 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
*
* https://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.springframework.cloud.contract.maven.verifier;
import java.io.File;
import io.takari.maven.testing.TestProperties;
import io.takari.maven.testing.TestResources;
import io.takari.maven.testing.executor.MavenRuntime;
import io.takari.maven.testing.executor.MavenVersions;
import io.takari.maven.testing.executor.junit.MavenJUnitTestRunner;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.util.SocketUtils;
@RunWith(MavenJUnitTestRunner.class)
@MavenVersions({ "3.5.0" })
public class PluginIT {
@Rule
public final TestResources resources = new TestResources();
private final TestProperties properties = new TestProperties();
private final MavenRuntime maven;
public PluginIT(MavenRuntime.MavenRuntimeBuilder mavenBuilder) throws Exception {
this.maven = mavenBuilder.withCliOptions("-B", "-U").build();
}
@Before
public void doNotRunForWindows() {
Assume.assumeFalse(isWindows());
}
private boolean isWindows() {
return System.getProperty("os.name").startsWith("Windows");
}
@Test
public void should_build_project_Spring_Boot_Groovy_with_Accurest() throws Exception {
File basedir = this.resources.getBasedir("spring-boot-groovy");
this.maven.forProject(basedir).execute("package").assertErrorFreeLog()
.assertLogText(
"Generating server tests source code for Spring Cloud Contract Verifier contract verification")
.assertLogText("Generated 1 test classes.")
.assertLogText(
"Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings")
.assertLogText("Creating new stub")
.assertLogText("Running hello.ContractVerifierSpec").assertErrorFreeLog();
}
@Test
public void should_build_project_Spring_Boot_Java_with_Accurest() throws Exception {
File basedir = this.resources.getBasedir("spring-boot-java");
this.maven.forProject(basedir).execute("package").assertErrorFreeLog()
.assertLogText(
"Generating server tests source code for Spring Cloud Contract Verifier contract verification")
.assertLogText("Generated 1 test classes.")
.assertLogText(
"Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings")
.assertLogText("Creating new stub")
.assertLogText("Running hello.ContractVerifierTest").assertErrorFreeLog();
}
@Test
public void should_build_project_with_plugin_extension() throws Exception {
File basedir = this.resources.getBasedir("plugin-extension");
this.maven.forProject(basedir).execute("package").assertErrorFreeLog()
.assertLogText(
"Generating server tests source code for Spring Cloud Contract Verifier contract verification")
.assertLogText("Generated 1 test classes.")
.assertLogText(
"Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings")
.assertLogText("Creating new stub")
.assertLogText("Running hello.ContractVerifierTest").assertErrorFreeLog();
}
@Test
public void should_convert_Accurest_Contracts_to_WireMock_Stubs_mappings()
throws Exception {
File basedir = this.resources.getBasedir("pomless");
this.properties.getPluginVersion();
this.maven.forProject(basedir).withCliOption("-X").execute(String.format(
"org.springframework.cloud:spring-cloud-contract-maven-plugin:%s:convert",
this.properties.getPluginVersion()))
.assertLogText(
"Converting from Spring Cloud Contract Verifier contracts to WireMock stubs mappings")
.assertLogText("Creating new stub").assertErrorFreeLog();
}
@Test
public void should_run_WireMock_Stubs_mappings() throws Exception {
int availableTcpPort = SocketUtils.findAvailableTcpPort();
File basedir = this.resources.getBasedir("generatedStubsOnly");
this.properties.getPluginVersion();
this.maven.forProject(basedir).withCliOption("-X")
.withCliOption(
"-Dspring.cloud.contract.verifier.http.port=" + availableTcpPort)
.withCliOption(
"-Dspring.cloud.contract.verifier.wait-for-key-pressed=false")
.execute(String.format(
"org.springframework.cloud:spring-cloud-contract-maven-plugin:%s:run",
this.properties.getPluginVersion()))
.assertLogText("All stubs are now running RunningStubs [namesAndPorts={="
+ availableTcpPort + "}]")
.assertErrorFreeLog();
}
}

View File

@@ -18,37 +18,22 @@ package org.springframework.cloud.contract.maven.verifier;
import java.io.File;
import io.takari.maven.testing.TestMavenRuntime;
import io.takari.maven.testing.TestResources;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.junit.Rule;
import org.junit.Test;
import org.springframework.boot.test.rule.OutputCapture;
import org.springframework.util.StringUtils;
import static io.takari.maven.testing.TestMavenRuntime.newParameter;
import static io.takari.maven.testing.TestResources.assertFilesNotPresent;
import static io.takari.maven.testing.TestResources.assertFilesPresent;
import static java.nio.charset.Charset.defaultCharset;
import static org.apache.commons.io.FileUtils.readFileToString;
import static org.apache.maven.plugin.testing.MojoParameters.newParameter;
import static org.assertj.core.api.BDDAssertions.then;
public class PluginUnitTest {
@Rule
public final TestResources resources = new TestResources();
@Rule
public final TestMavenRuntime maven = new TestMavenRuntime();
@Rule
public OutputCapture capture = new OutputCapture();
public class PluginUnitTest extends AbstractMojoTest {
@Test
public void shouldGenerateWireMockStubsInDefaultLocation() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests());
File basedir = getBasedir("basic");
executeMojo(basedir, "convert");
assertFilesPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Sample.json"
.replace("/", File.separator));
@@ -64,8 +49,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateWireMockFromStubsDirectory() throws Exception {
File basedir = this.resources.getBasedir("withStubs");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests(),
File basedir = getBasedir("withStubs");
executeMojo(basedir, "convert",
newParameter("contractsDirectory", "src/test/resources/stubs"));
assertFilesPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Sample.json"
@@ -74,8 +59,8 @@ public class PluginUnitTest {
@Test
public void shouldCopyContracts() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests());
File basedir = getBasedir("basic");
executeMojo(basedir, "convert");
assertFilesPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/contracts/Sample.groovy"
.replace("/", File.separator));
@@ -86,17 +71,16 @@ public class PluginUnitTest {
@Test
public void shouldGenerateWireMockStubsInSelectedLocation() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests(),
newParameter("stubsDirectory", "target/foo"));
File basedir = getBasedir("basic");
executeMojo(basedir, "convert", newParameter("stubsDirectory", "target/foo"));
assertFilesPresent(basedir,
"target/foo/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/Sample.json");
}
@Test
public void shouldGenerateContractSpecificationInDefaultLocation() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
File basedir = getBasedir("basic");
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "SPOCK"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierSpec.groovy";
assertFilesPresent(basedir, path);
@@ -106,16 +90,16 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsInDefaultLocation() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests());
File basedir = getBasedir("basic");
executeMojo(basedir, "generateTests", defaultPackageForTests());
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
}
@Test
public void shouldGenerateContractTestsWithCustomImports() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
File basedir = getBasedir("basic");
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("imports", ""));
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
@@ -123,8 +107,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithoutArraySize() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests());
File basedir = getBasedir("basic");
executeMojo(basedir, "generateTests", defaultPackageForTests());
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
File test = new File(basedir,
@@ -134,8 +118,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithArraySize() throws Exception {
File basedir = this.resources.getBasedir("basic");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
File basedir = getBasedir("basic");
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("assertJsonSize", "true"));
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
@@ -146,32 +130,30 @@ public class PluginUnitTest {
@Test
public void shouldGenerateStubs() throws Exception {
File basedir = this.resources.getBasedir("generatedStubs");
this.maven.executeMojo(basedir, "generateStubs", defaultPackageForTests());
File basedir = getBasedir("generatedStubs");
executeMojo(basedir, "generateStubs");
assertFilesPresent(basedir, "target/sample-project-stubs.jar");
}
@Test
public void shouldGenerateStubsWithMappingsOnly() throws Exception {
File basedir = this.resources.getBasedir("generatedStubs");
this.maven.executeMojo(basedir, "generateStubs", defaultPackageForTests(),
newParameter("attachContracts", "false"));
File basedir = getBasedir("generatedStubs");
executeMojo(basedir, "generateStubs");
assertFilesPresent(basedir, "target/sample-project-stubs.jar");
// FIXME: add assertion for jar content
}
@Test
public void shouldGenerateStubsWithCustomClassifier() throws Exception {
File basedir = this.resources.getBasedir("generatedStubs");
this.maven.executeMojo(basedir, "generateStubs", defaultPackageForTests(),
newParameter("classifier", "foo"));
File basedir = getBasedir("generatedStubs");
executeMojo(basedir, "generateStubs", newParameter("classifier", "foo"));
assertFilesPresent(basedir, "target/sample-project-foo.jar");
}
@Test
public void shouldGenerateStubsByDownloadingContractsFromARepo() throws Exception {
File basedir = this.resources.getBasedir("basic-remote-contracts");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests(),
File basedir = getBasedir("basic-remote-contracts");
executeMojo(basedir, "convert",
newParameter("contractsRepositoryUrl",
"file://" + PluginUnitTest.class.getClassLoader()
.getResource("m2repo/repository").getFile()
@@ -183,8 +165,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateStubsByDownloadingContractsFromARepoWhenCustomPathIsProvided()
throws Exception {
File basedir = this.resources.getBasedir("complex-remote-contracts");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests(),
File basedir = getBasedir("complex-remote-contracts");
executeMojo(basedir, "convert",
newParameter("contractsRepositoryUrl",
"file://" + PluginUnitTest.class.getClassLoader()
.getResource("m2repo/repository").getFile()
@@ -199,8 +181,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateOutputWhenCalledConvertFromRootProject() throws Exception {
File basedir = this.resources.getBasedir("different-module-configuration");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests());
File basedir = getBasedir("different-module-configuration");
executeMojo(basedir, "convert");
assertFilesPresent(basedir,
"target/stubs/META-INF/com.blogspot.toomuchcoding.frauddetection/frauddetection-parent/0.1.0/mappings/shouldMarkClientAsFraud.json");
}
@@ -208,16 +190,16 @@ public class PluginUnitTest {
@Test
public void shouldGenerateOutputWhenCalledGenerateTestsFromRootProject()
throws Exception {
File basedir = this.resources.getBasedir("different-module-configuration");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests());
File basedir = getBasedir("different-module-configuration");
executeMojo(basedir, "generateTests", defaultPackageForTests());
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
}
@Test
public void shouldGenerateTestsByDownloadingContractsFromARepo() throws Exception {
File basedir = this.resources.getBasedir("basic-remote-contracts");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
File basedir = getBasedir("basic-remote-contracts");
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("contractsRepositoryUrl",
"file://" + PluginUnitTest.class.getClassLoader()
.getResource("m2repo/repository").getFile()
@@ -229,8 +211,8 @@ public class PluginUnitTest {
@Test
public void shouldGenerateTestsByDownloadingContractsFromARepoWhenCustomPathIsProvided()
throws Exception {
File basedir = this.resources.getBasedir("complex-remote-contracts");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
File basedir = getBasedir("complex-remote-contracts");
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("contractsRepositoryUrl",
"file://" + PluginUnitTest.class.getClassLoader()
.getResource("m2repo/repository").getFile()
@@ -246,9 +228,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithBaseClassResolvedFromConvention()
throws Exception {
File basedir = this.resources.getBasedir("basic-generated-baseclass");
File basedir = getBasedir("basic-generated-baseclass");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "JUNIT"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/hello/V1Test.java";
@@ -261,9 +243,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithBaseClassResolvedFromConventionForSpock()
throws Exception {
File basedir = this.resources.getBasedir("basic-generated-baseclass");
File basedir = getBasedir("basic-generated-baseclass");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "SPOCK"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/hello/V1Spec.groovy";
@@ -276,9 +258,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithBaseClassResolvedFromMapping()
throws Exception {
File basedir = this.resources.getBasedir("basic-baseclass-from-mappings");
File basedir = getBasedir("basic-baseclass-from-mappings");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "JUNIT"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Test.java";
@@ -291,9 +273,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithBaseClassResolvedFromMappingNameForSpock()
throws Exception {
File basedir = this.resources.getBasedir("basic-baseclass-from-mappings");
File basedir = getBasedir("basic-baseclass-from-mappings");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "SPOCK"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Spec.groovy";
@@ -306,9 +288,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsWithAFileContainingAListOfContracts()
throws Exception {
File basedir = this.resources.getBasedir("multiple-contracts");
File basedir = getBasedir("multiple-contracts");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("testFramework", "JUNIT"));
String path = "target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/com/hello/V1Test.java";
@@ -322,10 +304,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateStubsWithAFileContainingAListOfContracts()
throws Exception {
File basedir = this.resources.getBasedir("multiple-contracts");
File basedir = getBasedir("multiple-contracts");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests(),
newParameter("stubsDirectory", "target/foo"));
executeMojo(basedir, "convert", newParameter("stubsDirectory", "target/foo"));
String firstFile = "target/foo/META-INF/org.springframework.cloud.verifier.sample/sample-project/0.1/mappings/com/hello/v1/should post a user.json";
File test = new File(basedir, firstFile);
@@ -341,14 +322,14 @@ public class PluginUnitTest {
@Test
public void shouldGenerateStubsForCommonRepoWithTargetFolder() throws Exception {
File basedir = this.resources.getBasedir("common-repo");
File basedir = getBasedir("common-repo");
this.maven.executeMojo(basedir, "convert", defaultPackageForTests());
executeMojo(basedir, "convert");
assertFilesNotPresent(basedir, "target/generated-test-sources/contracts/");
// there will be no stubs cause all files are copied to `target` folder
assertFilesNotPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/common-repo/0.1/mappings/");
assertFilesPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/common-repo/0.1/mappings/consumer1");
assertFilesPresent(basedir,
"target/stubs/META-INF/org.springframework.cloud.verifier.sample/common-repo/0.1/contracts/consumer1/Messaging.groovy");
assertFilesPresent(basedir,
@@ -357,9 +338,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsForPactAndMaintainIndents() throws Exception {
File basedir = this.resources.getBasedir("pact");
File basedir = getBasedir("pact");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests());
executeMojo(basedir, "generateTests", defaultPackageForTests());
assertFilesPresent(basedir,
"target/generated-test-sources/contracts/org/springframework/cloud/contract/verifier/tests/ContractVerifierTest.java");
@@ -373,9 +354,9 @@ public class PluginUnitTest {
@Test
public void shouldRunPushStubsToScm() throws Exception {
File basedir = this.resources.getBasedir("git-basic-remote-contracts");
File basedir = getBasedir("git-basic-remote-contracts");
this.maven.executeMojo(basedir, "pushStubsToScm", defaultPackageForTests());
executeMojo(basedir, "pushStubsToScm");
then(this.capture.toString())
.contains("Skipping pushing stubs to scm since your");
@@ -383,9 +364,9 @@ public class PluginUnitTest {
@Test
public void shouldGenerateContractTestsForIncludedFilesPattern() throws Exception {
File basedir = this.resources.getBasedir("complex-common-repo-with-messaging");
File basedir = getBasedir("complex-common-repo-with-messaging");
this.maven.executeMojo(basedir, "generateTests", defaultPackageForTests(),
executeMojo(basedir, "generateTests", defaultPackageForTests(),
newParameter("contractsRepositoryUrl",
"file://" + PluginUnitTest.class.getClassLoader()
.getResource("m2repo/repository").getFile()

View File

@@ -31,6 +31,7 @@
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<configuration></configuration>
</plugin>
</plugins>
</build>

View File

@@ -31,6 +31,7 @@
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<!--
<configuration>
<baseClassForTests>com.example.FooBase</baseClassForTests>
<baseClassMappings>
@@ -40,6 +41,7 @@
</baseClassMapping>
</baseClassMappings>
</configuration>
-->
</plugin>
</plugins>
</build>