Merge pull request #1029 from swagger-api/jaxrs-server-codegen-improvements

fixed generated code to go to target/generated-sources, added maven-c…
This commit is contained in:
Tony Tam
2015-08-23 17:32:29 -07:00
37 changed files with 2154 additions and 815 deletions

View File

@@ -143,7 +143,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
for (String templateName : config.modelTemplateFiles().keySet()) {
String suffix = config.modelTemplateFiles().get(templateName);
String filename = config.modelFileFolder() + File.separator + config.toModelFilename(name) + suffix;
if (!config.shouldOverwrite(filename)) {
if ( new File(filename).exists() && !config.shouldOverwrite(filename)) {
continue;
}
String templateFile = getFullTemplateFile(config, templateName);
@@ -195,7 +195,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
for (String templateName : config.apiTemplateFiles().keySet()) {
String filename = config.apiFilename(templateName, tag);
if (!config.shouldOverwrite(filename) && new File(filename).exists()) {
if( new File( filename ).exists() && !config.shouldOverwrite(filename)) {
continue;
}
@@ -267,7 +267,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
of.mkdirs();
}
String outputFilename = outputFolder + File.separator + support.destinationFilename;
if (!config.shouldOverwrite(outputFilename)) {
if (new File( outputFilename ).exists() && !config.shouldOverwrite(outputFilename)) {
continue;
}

View File

@@ -5,11 +5,15 @@ import io.swagger.codegen.CodegenOperation;
import io.swagger.codegen.CodegenType;
import io.swagger.codegen.SupportingFile;
import io.swagger.models.Operation;
import io.swagger.models.Swagger;
import io.swagger.models.properties.ArrayProperty;
import io.swagger.models.properties.MapProperty;
import io.swagger.models.properties.Property;
import io.swagger.util.Json;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -17,6 +21,7 @@ import java.util.List;
import java.util.Map;
public class JaxRSServerCodegen extends JavaClientCodegen implements CodegenConfig {
public static final String DEFAULT_IMPL_SOURCE_FOLDER = "src/main/java";
protected String invokerPackage = "io.swagger.api";
protected String groupId = "io.swagger";
protected String artifactId = "swagger-jaxrs-server";
@@ -26,9 +31,9 @@ public class JaxRSServerCodegen extends JavaClientCodegen implements CodegenConf
public JaxRSServerCodegen() {
super.processOpts();
sourceFolder = "src/gen/java";
sourceFolder = "target/generated-sources";
outputFolder = System.getProperty("swagger.codegen.jaxrs.genfolder", "generated-code/javaJaxRS");
outputFolder = System.getProperty("swagger.codegen.jaxrs.genfolder", "target/generated-sources");
modelTemplateFiles.put("model.mustache", ".java");
apiTemplateFiles.put("api.mustache", ".java");
apiTemplateFiles.put("apiService.mustache", ".java");
@@ -169,7 +174,7 @@ public class JaxRSServerCodegen extends JavaClientCodegen implements CodegenConf
int ix = result.lastIndexOf('/');
result = result.substring(0, ix) + "/impl" + result.substring(ix, result.length() - 5) + "ServiceImpl.java";
String output = System.getProperty("swagger.codegen.jaxrs.impl.source");
String output = System.getProperty("swagger.codegen.jaxrs.impl.source", DEFAULT_IMPL_SOURCE_FOLDER);
if (output != null) {
result = result.replace(apiFileFolder(), implFileFolder(output));
}
@@ -177,7 +182,7 @@ public class JaxRSServerCodegen extends JavaClientCodegen implements CodegenConf
int ix = result.lastIndexOf('/');
result = result.substring(0, ix) + "/factories" + result.substring(ix, result.length() - 5) + "ServiceFactory.java";
String output = System.getProperty("swagger.codegen.jaxrs.impl.source");
String output = System.getProperty("swagger.codegen.jaxrs.impl.source", DEFAULT_IMPL_SOURCE_FOLDER);
if (output != null) {
result = result.replace(apiFileFolder(), implFileFolder(output));
}
@@ -189,11 +194,31 @@ public class JaxRSServerCodegen extends JavaClientCodegen implements CodegenConf
return result;
}
@Override
public void processSwagger(Swagger swagger) {
super.processSwagger(swagger);
try {
File file = new File( outputFolder + "/src/main/resources/swagger.json" );
file.getParentFile().mkdirs();
FileWriter swaggerFile = new FileWriter(file);
swaggerFile.write( Json.pretty(swagger));
swaggerFile.flush();
swaggerFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private String implFileFolder(String output) {
return outputFolder + "/" + output + "/" + apiPackage().replace('.', File.separatorChar);
}
public boolean shouldOverwrite(String filename) {
return super.shouldOverwrite(filename) && !filename.endsWith("ServiceImpl.java") && !filename.endsWith("ServiceFactory.java");
return filename.startsWith( outputFolder + File.separatorChar + sourceFolder);
// return super.shouldOverwrite(filename) && !filename.endsWith("ServiceImpl.java")
// && !filename.endsWith("ServiceFactory.java");
}
}