AbstractFilesystemMojo.java

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

  2. import org.apache.maven.plugin.AbstractMojo;
  3. import org.apache.maven.plugins.annotations.Parameter;
  4. import org.jbehave.core.io.ResourceLoader;
  5. import org.jbehave.core.io.rest.RESTClient.Type;
  6. import org.jbehave.core.io.rest.ResourceIndexer;
  7. import org.jbehave.core.io.rest.ResourceUploader;
  8. import org.jbehave.core.io.rest.confluence.IndexFromConfluence;
  9. import org.jbehave.core.io.rest.confluence.LoadFromConfluence;
  10. import org.jbehave.core.io.rest.redmine.IndexFromRedmine;
  11. import org.jbehave.core.io.rest.redmine.LoadFromRedmine;
  12. import org.jbehave.core.io.rest.redmine.UploadToRedmine;
  13. import org.jbehave.core.io.rest.xwiki.IndexFromXWiki;
  14. import org.jbehave.core.io.rest.xwiki.LoadFromXWiki;
  15. import org.jbehave.core.io.rest.xwiki.UploadToXWiki;

  16. /**
  17.  * Abstract mojo for filesystem import/export operations.
  18.  */
  19. public abstract class AbstractFilesystemMojo extends AbstractMojo {

  20.     private static final String REDMINE = "redmine";
  21.     private static final String XWIKI = "xwiki";
  22.     private static final String CONFLUENCE = "confluence";

  23.     /**
  24.      * The REST provider.  Currently supported are "redmine" and "xwiki".  Also supported is "confluence" for import
  25.      * only.
  26.      */
  27.     @Parameter(property = "jbehave.rest.provider", defaultValue = "xwiki")
  28.     String restProvider;

  29.     /**
  30.      * The root URI of the REST API
  31.      */
  32.     @Parameter(property = "jbehave.rest.rootURI", required = true)
  33.     String restRootURI;

  34.     /**
  35.      * The username to access the REST API. May be null if no security enabled.
  36.      */
  37.     @Parameter(property = "jbehave.rest.username")
  38.     String restUsername;

  39.     /**
  40.      * The password to access the REST API. May be null if no security enabled.
  41.      */
  42.     @Parameter(property = "jbehave.rest.password")
  43.     String restPassword;

  44.     /**
  45.      * The path of the filesystem in which the resources are found
  46.      */
  47.     @Parameter(property = "jbehave.rest.resourcesPath", defaultValue = "src/main/resources/stories")
  48.     String resourcesPath;

  49.     /**
  50.      * The extension of the resources
  51.      */
  52.     @Parameter(property = "jbehave.rest.resourcesExt", defaultValue = ".story")
  53.     String resourcesExt;

  54.     ResourceIndexer newResourceIndexer() {
  55.         if (restProvider.equals(REDMINE)) {
  56.             return new IndexFromRedmine(restUsername, restPassword);
  57.         }
  58.         if (restProvider.equals(XWIKI)) {
  59.             return new IndexFromXWiki(restUsername, restPassword);
  60.         }
  61.         if (restProvider.equals(CONFLUENCE)) {
  62.             return new IndexFromConfluence(restUsername, restPassword);
  63.         }
  64.         throw new RuntimeException("Unsupported ResourceIndexer provider " + restProvider);
  65.     }

  66.     ResourceLoader newResourceLoader() {
  67.         if (restProvider.equals(REDMINE)) {
  68.             return new LoadFromRedmine(Type.JSON, restUsername, restPassword);
  69.         }
  70.         if (restProvider.equals(XWIKI)) {
  71.             return new LoadFromXWiki(Type.JSON, restUsername, restPassword);
  72.         }
  73.         if (restProvider.equals(CONFLUENCE)) {
  74.             return new LoadFromConfluence(restUsername, restPassword);
  75.         }

  76.         throw new RuntimeException("Unsupported ResourceLoader provider " + restProvider);
  77.     }

  78.     ResourceUploader newResourceUploader() {
  79.         if (restProvider.equals(REDMINE)) {
  80.             return new UploadToRedmine(Type.JSON, restUsername, restPassword);
  81.         }
  82.         if (restProvider.equals(XWIKI)) {
  83.             return new UploadToXWiki(Type.XML, restUsername, restPassword);
  84.         }

  85.         throw new RuntimeException("Unsupported ResourceUploader provider " + restProvider);
  86.     }

  87. }