diff --git a/src/main/groovy/io/codearte/accurest/maven/AccurestConverter.groovy b/src/main/groovy/io/codearte/accurest/maven/AccurestConverter.groovy
deleted file mode 100644
index dba4190397..0000000000
--- a/src/main/groovy/io/codearte/accurest/maven/AccurestConverter.groovy
+++ /dev/null
@@ -1,17 +0,0 @@
-package io.codearte.accurest.maven;
-
-import groovy.transform.CompileStatic;
-import groovy.transform.PackageScope;
-import io.codearte.accurest.config.AccurestConfigProperties;
-import io.codearte.accurest.wiremock.DslToWireMockClientConverter;
-import io.codearte.accurest.wiremock.RecursiveFilesConverter;
-
-@CompileStatic
-class AccurestConverter {
-
- static void convertAccurestToStubs(AccurestConfigProperties config) {
- RecursiveFilesConverter converter = new RecursiveFilesConverter(new DslToWireMockClientConverter(), config)
- converter.processFiles()
- }
-
-}
diff --git a/src/main/groovy/io/codearte/accurest/maven/ConvertMojo.groovy b/src/main/groovy/io/codearte/accurest/maven/ConvertMojo.groovy
index d90cbc7133..662911053e 100644
--- a/src/main/groovy/io/codearte/accurest/maven/ConvertMojo.groovy
+++ b/src/main/groovy/io/codearte/accurest/maven/ConvertMojo.groovy
@@ -2,35 +2,71 @@ package io.codearte.accurest.maven
import groovy.transform.CompileStatic
import io.codearte.accurest.config.AccurestConfigProperties
+import io.codearte.accurest.wiremock.DslToWireMockClientConverter
+import io.codearte.accurest.wiremock.RecursiveFilesConverter
+import org.apache.maven.execution.MavenSession
+import org.apache.maven.model.path.PathTranslator
import org.apache.maven.plugin.AbstractMojo
import org.apache.maven.plugin.MojoExecutionException
import org.apache.maven.plugin.MojoFailureException
+import org.apache.maven.plugins.annotations.Component
+import org.apache.maven.plugins.annotations.LifecyclePhase
import org.apache.maven.plugins.annotations.Mojo
import org.apache.maven.plugins.annotations.Parameter
-import static io.codearte.accurest.maven.AccurestConverter.convertAccurestToStubs
+import javax.inject.Inject
-@Mojo(name = 'convert', requiresProject = false)
+@Mojo(name = 'convert', requiresProject = false, defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
@CompileStatic
-public class ConvertMojo extends AbstractMojo {
+class ConvertMojo extends AbstractMojo {
- @Parameter(property = 'contractsDir', defaultValue = '${basedir}')
- private File contractsDir
+ @Parameter(defaultValue = '${basedir}', readonly = true, required = true)
+ private File baseDir
- @Parameter(property = 'mappingsDir', defaultValue = '${basedir}')
- private File mappingsDir
+ @Parameter(defaultValue = '${project.build.directory}', readonly = true, required = true)
+ private File projectBuildDirectory
- public void execute() throws MojoExecutionException, MojoFailureException {
+ @Parameter(property = 'contractsDir')
+ private String contractsDir
+
+ @Parameter(property = 'mappingsDir')
+ private String mappingsDir
+
+ @Component
+ private MavenSession mavenSession
+
+ private final PathTranslator translator
+
+ @Inject
+ ConvertMojo(PathTranslator translator) {
+ this.translator = translator
+ }
+
+ void execute() throws MojoExecutionException, MojoFailureException {
AccurestConfigProperties config = new AccurestConfigProperties()
- config.contractsDslDir = contractsDir
- config.stubsOutputDir = mappingsDir
+
+ config.contractsDslDir = resolveFile(baseDir, contractsDir, isInsideProject() ? 'src/test/accurest' : '')
+ config.stubsOutputDir = resolveFile(projectBuildDirectory, mappingsDir, isInsideProject() ? 'mappings' : '')
log.info('Converting from accurest contracts written in GroovyDSL to WireMock stubs mappings')
- log.info(" Accurest contracts directory: ${config.contractsDslDir.absolutePath}")
- log.info("WireMock stubs mappings directory: ${config.stubsOutputDir.absolutePath}")
+ log.info(" Accurest contracts directory: ${config.contractsDslDir}")
+ log.info("WireMock stubs mappings directory: ${config.stubsOutputDir}")
- convertAccurestToStubs(config)
+ RecursiveFilesConverter converter = new RecursiveFilesConverter(new DslToWireMockClientConverter(), config)
+ converter.processFiles()
+ }
+
+ private boolean isInsideProject() {
+ mavenSession.getRequest().isProjectPresent()
+ }
+
+ private File resolveFile(File baseDir, String requestedPath, String defaultPath) {
+ requestedPath ? alignToBaseDirectory(requestedPath, baseDir) : alignToBaseDirectory(defaultPath, baseDir)
+ }
+
+ private File alignToBaseDirectory(String dir1, File dir) {
+ return new File(translator.alignToBaseDirectory(dir1, dir))
}
}
diff --git a/src/main/groovy/io/codearte/accurest/maven/GenerateStubsMojo.groovy b/src/main/groovy/io/codearte/accurest/maven/GenerateStubsMojo.groovy
index 82ec235e0f..165dc96663 100644
--- a/src/main/groovy/io/codearte/accurest/maven/GenerateStubsMojo.groovy
+++ b/src/main/groovy/io/codearte/accurest/maven/GenerateStubsMojo.groovy
@@ -1,42 +1,19 @@
package io.codearte.accurest.maven
import groovy.transform.CompileStatic
-import io.codearte.accurest.config.AccurestConfigProperties
-import io.codearte.accurest.wiremock.DslToWireMockClientConverter
-import io.codearte.accurest.wiremock.RecursiveFilesConverter
-import org.apache.maven.plugin.AbstractMojo
-import org.apache.maven.plugin.MojoExecutionException
-import org.apache.maven.plugin.MojoFailureException
+import org.apache.maven.model.path.PathTranslator
import org.apache.maven.plugins.annotations.LifecyclePhase
import org.apache.maven.plugins.annotations.Mojo
-import org.apache.maven.plugins.annotations.Parameter
+
+import javax.inject.Inject
@Mojo(name = 'generateStubs', defaultPhase = LifecyclePhase.PROCESS_RESOURCES)
@CompileStatic
-public class GenerateStubsMojo extends AbstractMojo {
+@Deprecated
+class GenerateStubsMojo extends ConvertMojo {
- @Parameter(defaultValue = '${basedir}', readonly = true, required = true)
- private File baseDir
-
- @Parameter(defaultValue = '${project.build.directory}', readonly = true, required = true)
- private File projectBuildDirectory
-
- @Parameter(defaultValue = '/src/test/accurest')
- private String contractsDir
-
- @Parameter(defaultValue = 'mappings')
- private String mappingsDir
-
- public void execute() throws MojoExecutionException, MojoFailureException {
- AccurestConfigProperties config = new AccurestConfigProperties()
- config.contractsDslDir = new File(baseDir, contractsDir)
- config.stubsOutputDir = new File(projectBuildDirectory, mappingsDir)
-
- log.info('Accurest Plugin: Invoking GroovyDSL to WireMock client stubs conversion')
- log.info("From '${config.contractsDslDir}' to '${config.stubsOutputDir}'")
-
- RecursiveFilesConverter converter = new RecursiveFilesConverter(new DslToWireMockClientConverter(), config)
- converter.processFiles()
+ @Inject
+ GenerateStubsMojo(PathTranslator translator) {
+ super(translator)
}
-
}
diff --git a/src/main/groovy/io/codearte/accurest/maven/GenerateTestsMojo.groovy b/src/main/groovy/io/codearte/accurest/maven/GenerateTestsMojo.groovy
index 1f642b109b..f13814382c 100644
--- a/src/main/groovy/io/codearte/accurest/maven/GenerateTestsMojo.groovy
+++ b/src/main/groovy/io/codearte/accurest/maven/GenerateTestsMojo.groovy
@@ -17,7 +17,7 @@ import static java.lang.String.format
@Mojo(name = 'generateTests', defaultPhase = LifecyclePhase.GENERATE_TEST_SOURCES)
@CompileStatic
-public class GenerateTestsMojo extends AbstractMojo {
+class GenerateTestsMojo extends AbstractMojo {
@Parameter(defaultValue = '${basedir}', readonly = true, required = true)
private File baseDir
@@ -49,7 +49,7 @@ public class GenerateTestsMojo extends AbstractMojo {
@Parameter
private String nameSuffixForTests
- public void execute() throws MojoExecutionException, MojoFailureException {
+ void execute() throws MojoExecutionException, MojoFailureException {
log.info('Generating server tests source code for Accurest contract verification')
AccurestConfigProperties config = new AccurestConfigProperties()
diff --git a/src/main/groovy/io/codearte/accurest/maven/RunMojo.groovy b/src/main/groovy/io/codearte/accurest/maven/RunMojo.groovy
index 82c1b49f8c..9a0e7b539a 100644
--- a/src/main/groovy/io/codearte/accurest/maven/RunMojo.groovy
+++ b/src/main/groovy/io/codearte/accurest/maven/RunMojo.groovy
@@ -15,7 +15,7 @@ import javax.inject.Inject
@Mojo(name = 'run', requiresProject = false)
@CompileStatic
-public class RunMojo extends AbstractMojo {
+class RunMojo extends AbstractMojo {
@Parameter(defaultValue = '${repositorySystemSession}', readonly = true)
private RepositorySystemSession repoSession
@@ -38,12 +38,12 @@ public class RunMojo extends AbstractMojo {
private final RemoteStubRunner remoteStubRunner
@Inject
- public RunMojo(LocalStubRunner localStubRunner, RemoteStubRunner remoteStubRunner) {
+ RunMojo(LocalStubRunner localStubRunner, RemoteStubRunner remoteStubRunner) {
this.localStubRunner = localStubRunner
this.remoteStubRunner = remoteStubRunner
}
- public void execute() throws MojoExecutionException, MojoFailureException {
+ void execute() throws MojoExecutionException, MojoFailureException {
StubRunnerOptions options = new StubRunnerOptions(minPort, maxPort, "", false, stubsClassifier)
log.debug("Launching StubRunner with args: $options")
if (!stubs) {
diff --git a/src/main/groovy/io/codearte/accurest/maven/stubrunner/AetherStubDownloaderFactory.groovy b/src/main/groovy/io/codearte/accurest/maven/stubrunner/AetherStubDownloaderFactory.groovy
index 241b9a6cac..63f9e5bef0 100644
--- a/src/main/groovy/io/codearte/accurest/maven/stubrunner/AetherStubDownloaderFactory.groovy
+++ b/src/main/groovy/io/codearte/accurest/maven/stubrunner/AetherStubDownloaderFactory.groovy
@@ -14,13 +14,13 @@ import javax.inject.Singleton
@Singleton
@CompileStatic
@Slf4j
-public class AetherStubDownloaderFactory {
+class AetherStubDownloaderFactory {
private final MavenProject project
private final RepositorySystem repoSystem
@Inject
- public AetherStubDownloaderFactory(RepositorySystem repoSystem, MavenProject project) {
+ AetherStubDownloaderFactory(RepositorySystem repoSystem, MavenProject project) {
this.repoSystem = repoSystem
this.project = project
}
diff --git a/src/test/java/io/codearte/accurest/maven/PluginIT.java b/src/test/java/io/codearte/accurest/maven/PluginIT.java
index a13dcc4257..6dd0080e4c 100644
--- a/src/test/java/io/codearte/accurest/maven/PluginIT.java
+++ b/src/test/java/io/codearte/accurest/maven/PluginIT.java
@@ -35,7 +35,7 @@ public class PluginIT {
.assertErrorFreeLog()
.assertLogText("Generating server tests source code for Accurest contract verification")
.assertLogText("Generated 1 test classes.")
- .assertLogText("Accurest Plugin: Invoking GroovyDSL to WireMock client stubs conversion")
+ .assertLogText("Converting from accurest contracts written in GroovyDSL to WireMock stubs mappings")
.assertLogText("Creating new json")
.assertErrorFreeLog();
}
@@ -48,7 +48,7 @@ public class PluginIT {
.assertErrorFreeLog()
.assertLogText("Generating server tests source code for Accurest contract verification")
.assertLogText("Generated 1 test classes.")
- .assertLogText("Accurest Plugin: Invoking GroovyDSL to WireMock client stubs conversion")
+ .assertLogText("Converting from accurest contracts written in GroovyDSL to WireMock stubs mappings")
.assertLogText("Creating new json")
.assertErrorFreeLog();
}
diff --git a/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java b/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java
index 35ebfc472a..1a82b32990 100644
--- a/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java
+++ b/src/test/java/io/codearte/accurest/maven/PluginUnitTest.java
@@ -22,21 +22,21 @@ public class PluginUnitTest {
@Test
public void shouldGenerateWireMockStubsInDefaultLocation() throws Exception {
File basedir = resources.getBasedir("basic");
- maven.executeMojo(basedir, "generateStubs");
+ maven.executeMojo(basedir, "convert");
assertFilesPresent(basedir, "target/mappings/Sample.json");
}
@Test
public void shouldGenerateWireMockFromStubsDirectory() throws Exception {
File basedir = resources.getBasedir("withStubs");
- maven.executeMojo(basedir, "generateStubs", newParameter("contractsDir", "/src/test/resources/stubs"));
+ maven.executeMojo(basedir, "convert", newParameter("contractsDir", "src/test/resources/stubs"));
assertFilesPresent(basedir, "target/mappings/Sample.json");
}
@Test
public void shouldGenerateWireMockStubsInSelectedLocation() throws Exception {
File basedir = resources.getBasedir("basic");
- maven.executeMojo(basedir, "generateStubs", newParameter("mappingsDir", "foo"));
+ maven.executeMojo(basedir, "convert", newParameter("mappingsDir", "foo"));
assertFilesPresent(basedir, "target/foo/Sample.json");
}
diff --git a/src/test/projects/spring-boot-groovy/pom.xml b/src/test/projects/spring-boot-groovy/pom.xml
index 12ba2e0d33..66077131b8 100644
--- a/src/test/projects/spring-boot-groovy/pom.xml
+++ b/src/test/projects/spring-boot-groovy/pom.xml
@@ -86,14 +86,14 @@
- generateStubs
+ convert
generateTests
com.ofg.twitter.place.BaseMockMvcTest
- /src/test/resources/stubs
+ src/test/resources/stubs
SPOCK
Test
diff --git a/src/test/projects/spring-boot-java/pom.xml b/src/test/projects/spring-boot-java/pom.xml
index 7ca7455ae5..56ec273c19 100644
--- a/src/test/projects/spring-boot-java/pom.xml
+++ b/src/test/projects/spring-boot-java/pom.xml
@@ -75,7 +75,7 @@
- generateStubs
+ convert
generateTests