package org.jbehave.core.io.rest.mojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.jbehave.core.io.rest.ResourceExporter;
import org.jbehave.core.io.rest.ResourceIndexer;
import org.jbehave.core.io.rest.ResourceUploader;
import org.jbehave.core.io.rest.filesystem.ExportFromFilesystem;
/**
* Mojo to export resources to REST root path from filesystem.
*
* @goal export-from-filesystem
* @requiresProject false
*/
public class ExportFromFilesystemMojo extends AbstractFilesystemMojo {
/**
* The includes pattern of the resources
*
* @parameter default-value="**"
* expression="${jbehave.rest.resourcesIncludes}
*/
String resourcesIncludes;
/**
* The syntax of the resources
*
* @parameter default-value=""
* expression="${jbehave.rest.resourcesSyntax}
*/
String resourcesSyntax;
public void execute() throws MojoExecutionException, MojoFailureException {
try {
getLog().info(
"Exporting from filesystem resources to REST root URI "
+ restRootURI);
ResourceExporter exporter = createExporter();
exporter.exportResources(restRootURI);
} catch (Exception e) {
String message = "Failed to export from filesystem resources to REST root URI "
+ restRootURI;
getLog().warn(message);
throw new MojoExecutionException(message, e);
}
}
private ResourceExporter createExporter() {
ResourceIndexer indexer = newResourceIndexer();
ResourceUploader uploader = newResourceUploader();
getLog().info(
"Creating exporter from filesystem using REST provider "
+ restProvider + " with resourcesPath " + resourcesPath
+ ", resourcesExt " + resourcesExt + ", resourcesSyntax "
+ resourcesSyntax + " and resourcesIncludes "
+ resourcesIncludes);
return new ExportFromFilesystem(indexer, uploader, resourcesPath,
resourcesExt, resourcesSyntax, resourcesIncludes);
}
}