ExportFromFilesystemMojo.java

  1. package org.jbehave.core.io.rest.mojo;

  2. import org.apache.maven.plugin.MojoExecutionException;
  3. import org.apache.maven.plugins.annotations.Mojo;
  4. import org.apache.maven.plugins.annotations.Parameter;
  5. import org.jbehave.core.io.rest.ResourceExporter;
  6. import org.jbehave.core.io.rest.ResourceIndexer;
  7. import org.jbehave.core.io.rest.ResourceUploader;
  8. import org.jbehave.core.io.rest.filesystem.ExportFromFilesystem;

  9. /**
  10.  * Mojo to export resources to REST root path from filesystem.
  11.  */
  12. @Mojo(name = "export-from-filesystem", requiresProject = false)
  13. public class ExportFromFilesystemMojo extends AbstractFilesystemMojo {

  14.     /**
  15.      * The includes pattern of the resources
  16.      */
  17.     @Parameter(property = "jbehave.rest.resourcesIncludes", defaultValue = "**")
  18.     String resourcesIncludes;

  19.     /**
  20.      * The syntax of the resources
  21.      */
  22.     @Parameter(property = "jbehave.rest.resourcesSyntax", defaultValue = "")
  23.     String resourcesSyntax;

  24.     @Override
  25.     public void execute() throws MojoExecutionException {
  26.         try {
  27.             getLog().info(
  28.                     "Exporting from filesystem resources to REST root URI "
  29.                             + restRootURI);
  30.             ResourceExporter exporter = createExporter();
  31.             exporter.exportResources(restRootURI);
  32.         } catch (Exception e) {
  33.             String message = "Failed to export from filesystem resources to REST root URI "
  34.                     + restRootURI;
  35.             getLog().warn(message);
  36.             throw new MojoExecutionException(message, e);
  37.         }
  38.     }

  39.     private ResourceExporter createExporter() {
  40.         ResourceIndexer indexer = newResourceIndexer();
  41.         ResourceUploader uploader = newResourceUploader();
  42.         getLog().info(
  43.                 "Creating exporter from filesystem using REST provider "
  44.                         + restProvider + " with resourcesPath " + resourcesPath
  45.                         + ", resourcesExt " + resourcesExt + ", resourcesSyntax "
  46.                         + resourcesSyntax + " and resourcesIncludes "
  47.                         + resourcesIncludes);
  48.         return new ExportFromFilesystem(indexer, uploader, resourcesPath,
  49.                 resourcesExt, resourcesSyntax, resourcesIncludes);
  50.     }

  51. }