code: public static Source createSource(Log log, Source source, String pipelineURI, Map<String, Object> map)
              throws MojoExecutionException {
  
          try {
              if (!(source instanceof SAXSource)) {
                  throw new MojoExecutionException("Expecting a SAXSource");
              }
              SAXSource saxSource = (SAXSource) source;
  
              return run(log, pipelineURI, saxSource.getInputSource(),map);
          } catch (FileNotFoundException e) {
              throw new MojoExecutionException("Failed to find source.", e);
          }
          
      }
docs: Creates a {@link Source} for use in a Calabash pipeline.
  
  <p>The {@code map} values may instances of {@link String}, {@link File},
  {@link URI}, or {@link URL}.</p>
  
  <ul>
  <li>{@link String}: These are passed to the pipeline unchanged.</li>
  <li>{@link URI}: The results of {@link URI#toString()} is passed to the pipeline.</li>
  <li>{@link File}: These are treated as URIs by calling {@link File#toURI()}.</li>
  <li>{@link URL}: The result of {@link URL#toExternalForm()} is passed to the pipeline.</li>
  <li>{@code null}: This is passed to the pipeline as an empty string.</li>
  </ul>
  
  @param source
  @param pipelineURI
  @param map
  @return
  @throws MojoExecutionException