Skip to content

Commit 7aac639

Browse files
committed
refactor java codegen classes
1 parent 07ce036 commit 7aac639

11 files changed

+953
-1202
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java

Lines changed: 854 additions & 0 deletions
Large diffs are not rendered by default.

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaJAXRSServerCodegen.java

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package io.swagger.codegen.languages;
22

3-
import io.swagger.codegen.CodegenOperation;
4-
import io.swagger.codegen.CodegenParameter;
5-
import io.swagger.codegen.CodegenResponse;
6-
import io.swagger.codegen.CodegenType;
3+
import io.swagger.codegen.*;
74
import io.swagger.models.Operation;
85
import io.swagger.models.Path;
96
import io.swagger.models.Swagger;
@@ -13,7 +10,7 @@
1310

1411
import java.util.*;
1512

16-
public abstract class AbstractJavaJAXRSServerCodegen extends JavaClientCodegen {
13+
public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen {
1714
/**
1815
* Name of the sub-directory in "src/main/resource" where to find the
1916
* Mustache template for the JAX-RS Codegen.
@@ -26,28 +23,22 @@ public abstract class AbstractJavaJAXRSServerCodegen extends JavaClientCodegen {
2623
public AbstractJavaJAXRSServerCodegen()
2724
{
2825
super();
29-
dateLibrary = "legacy";
30-
apiTestTemplateFiles.clear(); // TODO: add test template
31-
}
3226

33-
@Override
34-
public void processOpts() {
35-
super.processOpts();
36-
// clear model and api doc template as AbstractJavaJAXRSServerCodegen
37-
// does not support auto-generated markdown doc at the moment
38-
modelDocTemplateFiles.remove("model_doc.mustache");
39-
apiDocTemplateFiles.remove("api_doc.mustache");
40-
}
27+
sourceFolder = "src/gen/java";
28+
invokerPackage = "io.swagger.api";
29+
artifactId = "swagger-jaxrs-server";
30+
dateLibrary = "legacy"; //TODO: add joda support to all jax-rs
4131

42-
// ================
43-
// ABSTRACT METHODS
44-
// ================
32+
apiPackage = "io.swagger.api";
33+
modelPackage = "io.swagger.model";
4534

46-
@Override
47-
public abstract String getHelp();
35+
additionalProperties.put("title", title);
36+
37+
cliOptions.add(new CliOption(CodegenConstants.IMPL_FOLDER, CodegenConstants.IMPL_FOLDER_DESC));
38+
cliOptions.add(new CliOption("title", "a title describing the application"));
39+
40+
}
4841

49-
@Override
50-
public abstract String getName();
5142

5243
// ===============
5344
// COMMONS METHODS
@@ -59,6 +50,15 @@ public CodegenType getTag()
5950
return CodegenType.SERVER;
6051
}
6152

53+
@Override
54+
public void processOpts() {
55+
super.processOpts();
56+
57+
if (additionalProperties.containsKey(CodegenConstants.IMPL_FOLDER)) {
58+
implFolder = (String) additionalProperties.get(CodegenConstants.IMPL_FOLDER);
59+
}
60+
}
61+
6262
@Override
6363
public void preprocessSwagger(Swagger swagger) {
6464
if ( "/".equals(swagger.getBasePath()) ) {

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GroovyClientCodegen.java

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,42 @@
11
package io.swagger.codegen.languages;
22

33
import io.swagger.codegen.*;
4-
import io.swagger.models.Operation;
54

65
import java.io.File;
7-
import java.util.*;
86

9-
public class GroovyClientCodegen extends JavaClientCodegen {
7+
public class GroovyClientCodegen extends AbstractJavaCodegen {
108
public static final String CONFIG_PACKAGE = "configPackage";
119
protected String title = "Petstore Server";
1210
protected String configPackage = "";
13-
protected String templateFileName = "api.mustache";
1411

1512
public GroovyClientCodegen() {
1613
super();
1714

1815
sourceFolder = projectFolder + File.separator + "groovy";
1916
outputFolder = "generated-code/groovy";
2017
modelTemplateFiles.put("model.mustache", ".groovy");
21-
apiTemplateFiles.put(templateFileName, ".groovy");
18+
apiTemplateFiles.put("api.mustache", ".groovy");
2219
apiTestTemplateFiles.clear(); // TODO: add test template
2320
embeddedTemplateDir = templateDir = "Groovy";
21+
22+
// clear model and api doc template as this codegen
23+
// does not support auto-generated markdown doc at the moment
24+
//TODO: add doc templates
25+
modelDocTemplateFiles.remove("model_doc.mustache");
26+
apiDocTemplateFiles.remove("api_doc.mustache");
2427

2528
apiPackage = "io.swagger.api";
2629
modelPackage = "io.swagger.model";
2730
configPackage = "io.swagger.configuration";
2831
invokerPackage = "io.swagger.api";
29-
artifactId = "swagger-spring-mvc-server";
30-
dateLibrary = "legacy";
32+
artifactId = "swagger-groovy";
33+
dateLibrary = "legacy"; //TODO: add joda support to groovy
3134

32-
additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, invokerPackage);
33-
additionalProperties.put(CodegenConstants.GROUP_ID, groupId);
34-
additionalProperties.put(CodegenConstants.ARTIFACT_ID, artifactId);
35-
additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, artifactVersion);
3635
additionalProperties.put("title", title);
37-
additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage);
3836
additionalProperties.put(CONFIG_PACKAGE, configPackage);
3937

4038
cliOptions.add(new CliOption(CONFIG_PACKAGE, "configuration package for generated code"));
4139

42-
supportedLibraries.clear();
4340
}
4441

4542
@Override
@@ -61,16 +58,10 @@ public String getHelp() {
6158
public void processOpts() {
6259
super.processOpts();
6360

64-
// clear model and api doc template as this codegen
65-
// does not support auto-generated markdown doc at the moment
66-
modelDocTemplateFiles.remove("model_doc.mustache");
67-
apiDocTemplateFiles.remove("api_doc.mustache");
68-
6961
if (additionalProperties.containsKey(CONFIG_PACKAGE)) {
7062
this.setConfigPackage((String) additionalProperties.get(CONFIG_PACKAGE));
7163
}
7264

73-
supportingFiles.clear();
7465
supportingFiles.add(new SupportingFile("build.gradle.mustache", "", "build.gradle"));
7566
// TODO readme to be added later
7667
//supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFServerCodegen.java

Lines changed: 9 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22
package io.swagger.codegen.languages;
33

44
import java.io.File;
5-
import java.util.LinkedHashMap;
65
import java.util.List;
76
import java.util.Map;
87

9-
import io.swagger.codegen.CliOption;
10-
import io.swagger.codegen.CodegenConstants;
118
import io.swagger.codegen.CodegenModel;
129
import io.swagger.codegen.CodegenOperation;
1310
import io.swagger.codegen.CodegenProperty;
@@ -19,56 +16,26 @@ public JavaCXFServerCodegen()
1916
{
2017
super();
2118
supportsInheritance = true;
22-
sourceFolder = "src/gen/java";
23-
invokerPackage = "io.swagger.api";
24-
artifactId = "swagger-jaxrs-server";
19+
sourceFolder = "gen" + File.separator + "java";
2520
outputFolder = "generated-code/JavaJaxRS-CXF";
21+
apiTestTemplateFiles.clear(); // TODO: add test template
2622

27-
modelTemplateFiles.put("model.mustache", ".java");
28-
apiTemplateFiles.put("api.mustache", ".java");
29-
apiPackage = "io.swagger.api";
30-
modelPackage = "io.swagger.model";
23+
// clear model and api doc template as this codegen
24+
// does not support auto-generated markdown doc at the moment
25+
//TODO: add doc templates
26+
modelDocTemplateFiles.remove("model_doc.mustache");
27+
apiDocTemplateFiles.remove("api_doc.mustache");
3128

32-
additionalProperties.put("title", title);
3329

3430
typeMapping.put("date", "LocalDate");
3531
typeMapping.put("DateTime", "javax.xml.datatype.XMLGregorianCalendar"); // Map DateTime fields to Java standart class 'XMLGregorianCalendar'
3632

3733
importMapping.put("LocalDate", "org.joda.time.LocalDate");
3834

39-
super.embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf";
35+
embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf";
4036

41-
for ( int i = 0; i < cliOptions.size(); i++ ) {
42-
if ( CodegenConstants.LIBRARY.equals(cliOptions.get(i).getOpt()) ) {
43-
cliOptions.remove(i);
44-
break;
45-
}
46-
}
47-
48-
CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
49-
library.setDefault(DEFAULT_LIBRARY);
50-
51-
Map<String, String> supportedLibraries = new LinkedHashMap<String,String>();
52-
53-
supportedLibraries.put(DEFAULT_LIBRARY, "CXF");
54-
library.setEnum(supportedLibraries);
55-
56-
cliOptions.add(library);
57-
cliOptions.add(new CliOption(CodegenConstants.IMPL_FOLDER, CodegenConstants.IMPL_FOLDER_DESC));
58-
cliOptions.add(new CliOption("title", "a title describing the application"));
5937
}
60-
61-
@Override
62-
public void processOpts()
63-
{
64-
super.processOpts();
65-
sourceFolder = "gen" + File.separator + "java";
66-
supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen
67-
68-
//TODO
69-
//final String invokerFolder = (sourceFolder + '/' + invokerPackage).replace(".", "/");
70-
//supportingFiles.add(new SupportingFile("CXF2InterfaceComparator.mustache", invokerFolder, "CXF2InterfaceComparator.java"));
71-
}
38+
7239

7340
@Override
7441
public String getName()

0 commit comments

Comments
 (0)