replace generateStubs with convert (#5)
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -86,14 +86,14 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>generateStubs</goal>
|
||||
<goal>convert</goal>
|
||||
<goal>generateTests</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<baseClassForTests>com.ofg.twitter.place.BaseMockMvcTest</baseClassForTests>
|
||||
<contractsDir>/src/test/resources/stubs</contractsDir>
|
||||
<contractsDir>src/test/resources/stubs</contractsDir>
|
||||
<testFramework>SPOCK</testFramework>
|
||||
<nameSuffixForTests>Test</nameSuffixForTests>
|
||||
</configuration>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>generateStubs</goal>
|
||||
<goal>convert</goal>
|
||||
<goal>generateTests</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
|
||||
Reference in New Issue
Block a user