/**
* Copyright 2013 Google Inc. All Rights Reserved.
*/
package com.google.appengine.endpoints;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import java.util.ArrayList;
import java.util.List;
/**
* App Engine endpoints get-swagger-doc command.
*
* @author Ludovic Champenois ludo at google dot com
* @goal endpoints_get_swagger_doc
* @phase compile
*/
public class EndpointsGetSwaggerDoc extends EndpointsMojo {
@Override
protected ArrayList<String> collectParameters(String command) {
ArrayList<String> arguments = new ArrayList<>();
arguments.add(command);
handleClassPath(arguments);
arguments.add("-o");
arguments.add(project.getBuild().getDirectory() + "/swagger.xml");
arguments.add("-w");
String appDir = project.getBuild().getDirectory() + "/" + project.getBuild().getFinalName();
arguments.add(appDir);
return arguments;
}
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("");
getLog().info("Google App Engine Java SDK - get swagger doc...");
List<String> classNames = getAPIServicesClasses();
if (classNames.isEmpty()) {
getLog().info("No Endpoints classes detected.");
return;
}
executeEndpointsCommand("get-swagger-doc", new String[0],
classNames.toArray(new String[classNames.size()]));
getLog().info("Endpoints swagger doc generation done.");
}
}