Skip to content

Commit 6c5def6

Browse files
committed
fix missing java client library files
1 parent d4c9617 commit 6c5def6

File tree

27 files changed

+411
-84
lines changed

27 files changed

+411
-84
lines changed

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

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -570,28 +570,6 @@ public CodegenModel fromModel(String name, Model model, Map<String, Model> allDe
570570
return codegenModel;
571571
}
572572

573-
@Override
574-
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
575-
objs = super.postProcessModelsEnum(objs);
576-
String lib = getLibrary();
577-
if (StringUtils.isEmpty(lib) || "feign".equals(lib) || "jersey2".equals(lib)) {
578-
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
579-
List<Object> models = (List<Object>) objs.get("models");
580-
for (Object _mo : models) {
581-
Map<String, Object> mo = (Map<String, Object>) _mo;
582-
CodegenModel cm = (CodegenModel) mo.get("model");
583-
// for enum model
584-
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
585-
cm.imports.add(importMapping.get("JsonValue"));
586-
Map<String, String> item = new HashMap<String, String>();
587-
item.put("import", importMapping.get("JsonValue"));
588-
imports.add(item);
589-
}
590-
}
591-
}
592-
return objs;
593-
}
594-
595573
@Override
596574
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
597575
if(serializeBigDecimalAsString) {
@@ -615,17 +593,6 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
615593
// needed by all pojos, but not enums
616594
model.imports.add("ApiModelProperty");
617595
model.imports.add("ApiModel");
618-
// comment out below as it's in the model template
619-
//model.imports.add("Objects");
620-
621-
final String lib = getLibrary();
622-
if(StringUtils.isEmpty(lib) || "feign".equals(lib) || "jersey2".equals(lib)) {
623-
model.imports.add("JsonProperty");
624-
625-
if(BooleanUtils.toBoolean(model.hasEnums)) {
626-
model.imports.add("JsonValue");
627-
}
628-
}
629596
}
630597
return;
631598
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
5656
model.imports.remove("ApiModel");
5757
model.imports.remove("JsonSerialize");
5858
model.imports.remove("ToStringSerializer");
59-
model.imports.remove("JsonValue");
60-
model.imports.remove("JsonProperty");
6159
}
6260

6361
@Override

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

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

33
import io.swagger.codegen.*;
4+
import org.apache.commons.lang3.BooleanUtils;
45
import org.apache.commons.lang3.StringUtils;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
@@ -95,6 +96,11 @@ public void processOpts() {
9596
supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh"));
9697
supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore"));
9798

99+
if (!StringUtils.isEmpty(getLibrary())) {
100+
//TODO: add sbt support to default client
101+
supportingFiles.add(new SupportingFile("build.sbt.mustache", "", "build.sbt"));
102+
}
103+
98104
//TODO: add doc to retrofit1 and feign
99105
if ( "feign".equals(getLibrary()) || "retrofit".equals(getLibrary()) ){
100106
modelDocTemplateFiles.remove("model_doc.mustache");
@@ -108,12 +114,7 @@ public void processOpts() {
108114
supportingFiles.add(new SupportingFile("auth/Authentication.mustache", authFolder, "Authentication.java"));
109115
}
110116

111-
// library-specific files
112-
if (!StringUtils.isEmpty(getLibrary())) {
113-
//TODO: add sbt support to default client
114-
supportingFiles.add(new SupportingFile("build.sbt.mustache", "", "build.sbt"));
115-
116-
} else if ("feign".equals(getLibrary())) {
117+
if ("feign".equals(getLibrary())) {
117118
supportingFiles.add(new SupportingFile("FormAwareEncoder.mustache", invokerFolder, "FormAwareEncoder.java"));
118119
} else if ("okhttp-gson".equals(getLibrary())) {
119120
// the "okhttp-gson" library template requires "ApiCallback.mustache" for async call
@@ -165,6 +166,45 @@ public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
165166
return objs;
166167
}
167168

169+
@Override
170+
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
171+
super.postProcessModelProperty(model, property);
172+
if(!BooleanUtils.toBoolean(model.isEnum)) {
173+
final String lib = getLibrary();
174+
//Needed imports for Jackson based libraries
175+
if(StringUtils.isEmpty(lib) || "feign".equals(lib) || "jersey2".equals(lib)) {
176+
model.imports.add("JsonProperty");
177+
178+
if(BooleanUtils.toBoolean(model.hasEnums)) {
179+
model.imports.add("JsonValue");
180+
}
181+
}
182+
}
183+
}
184+
185+
@Override
186+
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
187+
objs = super.postProcessModelsEnum(objs);
188+
String lib = getLibrary();
189+
//Needed imports for Jackson based libraries
190+
if (StringUtils.isEmpty(lib) || "feign".equals(lib) || "jersey2".equals(lib)) {
191+
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
192+
List<Object> models = (List<Object>) objs.get("models");
193+
for (Object _mo : models) {
194+
Map<String, Object> mo = (Map<String, Object>) _mo;
195+
CodegenModel cm = (CodegenModel) mo.get("model");
196+
// for enum model
197+
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
198+
cm.imports.add(importMapping.get("JsonValue"));
199+
Map<String, String> item = new HashMap<String, String>();
200+
item.put("import", importMapping.get("JsonValue"));
201+
imports.add(item);
202+
}
203+
}
204+
}
205+
return objs;
206+
}
207+
168208
public void setUseRxJava(boolean useRxJava) {
169209
this.useRxJava = useRxJava;
170210
}

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import io.swagger.models.Operation;
66
import io.swagger.models.Swagger;
77
import io.swagger.util.Yaml;
8+
import org.apache.commons.lang3.BooleanUtils;
9+
import org.apache.commons.lang3.StringUtils;
810
import org.slf4j.Logger;
911
import org.slf4j.LoggerFactory;
1012

@@ -133,6 +135,42 @@ public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
133135
return objs;
134136
}
135137

138+
@Override
139+
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
140+
super.postProcessModelProperty(model, property);
141+
142+
//Add imports for Jackson
143+
if(!BooleanUtils.toBoolean(model.isEnum)) {
144+
model.imports.add("JsonProperty");
145+
146+
if(BooleanUtils.toBoolean(model.hasEnums)) {
147+
model.imports.add("JsonValue");
148+
}
149+
}
150+
}
151+
152+
@Override
153+
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
154+
objs = super.postProcessModelsEnum(objs);
155+
156+
//Add imports for Jackson
157+
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
158+
List<Object> models = (List<Object>) objs.get("models");
159+
for (Object _mo : models) {
160+
Map<String, Object> mo = (Map<String, Object>) _mo;
161+
CodegenModel cm = (CodegenModel) mo.get("model");
162+
// for enum model
163+
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
164+
cm.imports.add(importMapping.get("JsonValue"));
165+
Map<String, String> item = new HashMap<String, String>();
166+
item.put("import", importMapping.get("JsonValue"));
167+
imports.add(item);
168+
}
169+
}
170+
171+
return objs;
172+
}
173+
136174
public String apiFilename(String templateName, String tag) {
137175
String result = super.apiFilename(templateName, tag);
138176

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.*;
77

8+
import org.apache.commons.lang3.BooleanUtils;
89
import org.apache.commons.lang3.StringUtils;
910

1011
public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
@@ -55,6 +56,15 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
5556
if("null".equals(property.example)) {
5657
property.example = null;
5758
}
59+
60+
//Add imports for Jackson
61+
if(!BooleanUtils.toBoolean(model.isEnum)) {
62+
model.imports.add("JsonProperty");
63+
64+
if(BooleanUtils.toBoolean(model.hasEnums)) {
65+
model.imports.add("JsonValue");
66+
}
67+
}
5868
}
5969

6070
@Override
@@ -90,6 +100,28 @@ public void processOpts() {
90100
supportingFiles.add(new SupportingFile("StringUtil.mustache", (sourceFolder + '/' + apiPackage).replace(".", "/"), "StringUtil.java"));
91101
}
92102

103+
@Override
104+
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
105+
objs = super.postProcessModelsEnum(objs);
106+
107+
//Add imports for Jackson
108+
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
109+
List<Object> models = (List<Object>) objs.get("models");
110+
for (Object _mo : models) {
111+
Map<String, Object> mo = (Map<String, Object>) _mo;
112+
CodegenModel cm = (CodegenModel) mo.get("model");
113+
// for enum model
114+
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
115+
cm.imports.add(importMapping.get("JsonValue"));
116+
Map<String, String> item = new HashMap<String, String>();
117+
item.put("import", importMapping.get("JsonValue"));
118+
imports.add(item);
119+
}
120+
}
121+
122+
return objs;
123+
}
124+
93125
@Override
94126
public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map<String, List<CodegenOperation>> operations) {
95127
String basePath = resourcePath;

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

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.swagger.codegen.*;
44
import io.swagger.models.Operation;
5+
import org.apache.commons.lang3.BooleanUtils;
56
import org.apache.commons.lang3.StringUtils;
67

78
import java.io.File;
@@ -164,28 +165,35 @@ public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
164165

165166
@Override
166167
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
167-
if(serializeBigDecimalAsString) {
168-
if (property.baseType.equals("BigDecimal")) {
169-
// we serialize BigDecimal as `string` to avoid precision loss
170-
property.vendorExtensions.put("extraAnnotation", "@JsonSerialize(using = ToStringSerializer.class)");
171-
172-
// this requires some more imports to be added for this model...
173-
model.imports.add("ToStringSerializer");
174-
model.imports.add("JsonSerialize");
168+
//Add imports for Jackson
169+
if(!BooleanUtils.toBoolean(model.isEnum)) {
170+
model.imports.add("JsonProperty");
171+
172+
if(BooleanUtils.toBoolean(model.hasEnums)) {
173+
model.imports.add("JsonValue");
175174
}
176175
}
176+
}
177177

178-
if(model.isEnum == null || model.isEnum) {
179-
180-
final String lib = getLibrary();
181-
if(StringUtils.isEmpty(lib)) {
182-
model.imports.add("JsonProperty");
183-
184-
if(model.hasEnums != null || model.hasEnums == true) {
185-
model.imports.add("JsonValue");
186-
}
178+
@Override
179+
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
180+
objs = super.postProcessModelsEnum(objs);
181+
182+
//Add imports for Jackson
183+
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
184+
List<Object> models = (List<Object>) objs.get("models");
185+
for (Object _mo : models) {
186+
Map<String, Object> mo = (Map<String, Object>) _mo;
187+
CodegenModel cm = (CodegenModel) mo.get("model");
188+
// for enum model
189+
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
190+
cm.imports.add(importMapping.get("JsonValue"));
191+
Map<String, String> item = new HashMap<String, String>();
192+
item.put("import", importMapping.get("JsonValue"));
193+
imports.add(item);
187194
}
188195
}
189-
return;
196+
197+
return objs;
190198
}
191199
}

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import io.swagger.models.Operation;
55
import io.swagger.models.Path;
66
import io.swagger.models.Swagger;
7+
import org.apache.commons.lang3.BooleanUtils;
8+
79
import java.io.File;
810
import java.util.*;
911

@@ -306,4 +308,40 @@ public Map<String, Object> postProcessModels(Map<String, Object> objs) {
306308
}
307309
return objs;
308310
}
311+
312+
@Override
313+
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
314+
super.postProcessModelProperty(model, property);
315+
316+
//Add imports for Jackson
317+
if(!BooleanUtils.toBoolean(model.isEnum)) {
318+
model.imports.add("JsonProperty");
319+
320+
if(BooleanUtils.toBoolean(model.hasEnums)) {
321+
model.imports.add("JsonValue");
322+
}
323+
}
324+
}
325+
326+
@Override
327+
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
328+
objs = super.postProcessModelsEnum(objs);
329+
330+
//Add imports for Jackson
331+
List<Map<String, String>> imports = (List<Map<String, String>>)objs.get("imports");
332+
List<Object> models = (List<Object>) objs.get("models");
333+
for (Object _mo : models) {
334+
Map<String, Object> mo = (Map<String, Object>) _mo;
335+
CodegenModel cm = (CodegenModel) mo.get("model");
336+
// for enum model
337+
if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) {
338+
cm.imports.add(importMapping.get("JsonValue"));
339+
Map<String, String> item = new HashMap<String, String>();
340+
item.put("import", importMapping.get("JsonValue"));
341+
imports.add(item);
342+
}
343+
}
344+
345+
return objs;
346+
}
309347
}

modules/swagger-codegen/src/main/resources/JavaJaxRS/libraries/jersey1/model.mustache

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package {{package}};
22

33
import java.util.Objects;
4-
import com.fasterxml.jackson.annotation.JsonProperty;
5-
import com.fasterxml.jackson.annotation.JsonValue;
64
{{#imports}}import {{import}};
75
{{/imports}}
86

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Swagger Codegen Ignore
2+
# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen
3+
4+
# Use this file to prevent files from being overwritten by the generator.
5+
# The patterns follow closely to .gitignore or .dockerignore.
6+
7+
# As an example, the C# client generator defines ApiClient.cs.
8+
# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line:
9+
#ApiClient.cs
10+
11+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
12+
#foo/*/qux
13+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14+
15+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16+
#foo/**/qux
17+
# Thsi matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18+
19+
# You can also negate patterns with an exclamation (!).
20+
# For example, you can ignore all files in a docs folder with the file extension .md:
21+
#docs/*.md
22+
# Then explicitly reverse the ignore rule for a single file:
23+
#!docs/README.md

0 commit comments

Comments
 (0)