Skip to content
This repository was archived by the owner on Nov 28, 2022. It is now read-only.

Commit 926f131

Browse files
keithchongsghung
authored andcommitted
[1116] Port VS Code fixes to the Eclipse plugin (#80)
Signed-off-by: Keith Chong <kchong@ca.ibm.com>
1 parent 80b681c commit 926f131

61 files changed

Lines changed: 2541 additions & 3 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

dev/org.eclipse.codewind.openapi.core/build.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ bin.includes = META-INF/,\
55
.options,\
66
lib/,\
77
plugin.xml,\
8-
plugin.properties
8+
plugin.properties,\
9+
templates/
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
/**
2+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech) ({{{generatorVersion}}}).
3+
* https://openapi-generator.tech
4+
* Do not edit the class manually.
5+
*/
6+
package {{package}};
7+
8+
{{#imports}}import {{import}};
9+
{{/imports}}
10+
import io.swagger.annotations.*;
11+
{{#jdk8-no-delegate}}
12+
{{#virtualService}}
13+
import io.virtualan.annotation.ApiVirtual;
14+
import io.virtualan.annotation.VirtualService;
15+
{{/virtualService}}
16+
import org.springframework.http.HttpStatus;
17+
import org.springframework.http.MediaType;
18+
{{/jdk8-no-delegate}}
19+
import org.springframework.http.ResponseEntity;
20+
{{#useBeanValidation}}
21+
import org.springframework.validation.annotation.Validated;
22+
{{/useBeanValidation}}
23+
import org.springframework.web.bind.annotation.PathVariable;
24+
import org.springframework.web.bind.annotation.RequestBody;
25+
import org.springframework.web.bind.annotation.RequestHeader;
26+
import org.springframework.web.bind.annotation.RequestMapping;
27+
import org.springframework.web.bind.annotation.RequestMethod;
28+
import org.springframework.web.bind.annotation.RequestParam;
29+
import org.springframework.web.bind.annotation.RequestPart;
30+
{{#jdk8-no-delegate}}
31+
{{^reactive}}
32+
import org.springframework.web.context.request.NativeWebRequest;
33+
{{/reactive}}
34+
{{/jdk8-no-delegate}}
35+
import org.springframework.web.multipart.MultipartFile;
36+
{{#reactive}}
37+
import org.springframework.web.server.ServerWebExchange;
38+
import reactor.core.publisher.Flux;
39+
import reactor.core.publisher.Mono;
40+
{{/reactive}}
41+
42+
{{#useBeanValidation}}
43+
import javax.validation.Valid;
44+
import javax.validation.constraints.*;
45+
{{/useBeanValidation}}
46+
import java.util.List;
47+
import java.util.Map;
48+
{{#jdk8-no-delegate}}
49+
import java.util.Optional;
50+
{{/jdk8-no-delegate}}
51+
{{^jdk8-no-delegate}}
52+
{{#useOptional}}
53+
import java.util.Optional;
54+
{{/useOptional}}
55+
{{/jdk8-no-delegate}}
56+
{{#async}}
57+
import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture{{/jdk8}};
58+
{{/async}}
59+
{{>generatedAnnotation}}
60+
{{#useBeanValidation}}
61+
@Validated
62+
{{/useBeanValidation}}
63+
@Api(value = "{{{baseName}}}", description = "the {{{baseName}}} API")
64+
{{#operations}}
65+
{{#virtualService}}
66+
@VirtualService
67+
{{/virtualService}}
68+
public interface {{classname}} {
69+
{{#jdk8}}
70+
{{^isDelegate}}
71+
{{^reactive}}
72+
73+
default Optional<NativeWebRequest> getRequest() {
74+
return Optional.empty();
75+
}
76+
{{/reactive}}
77+
{{/isDelegate}}
78+
{{#isDelegate}}
79+
80+
default {{classname}}Delegate getDelegate() {
81+
return new {{classname}}Delegate() {};
82+
}
83+
{{/isDelegate}}
84+
{{/jdk8}}
85+
{{#operation}}
86+
87+
{{#virtualService}}
88+
@ApiVirtual
89+
{{/virtualService}}
90+
@ApiOperation(value = "{{{summary}}}", nickname = "{{{operationId}}}", notes = "{{{notes}}}"{{#returnBaseType}}, response = {{{returnBaseType}}}.class{{/returnBaseType}}{{#returnContainer}}, responseContainer = "{{{returnContainer}}}"{{/returnContainer}}{{#hasAuthMethods}}, authorizations = {
91+
{{#authMethods}}@Authorization(value = "{{name}}"{{#isOAuth}}, scopes = {
92+
{{#scopes}}@AuthorizationScope(scope = "{{scope}}", description = "{{description}}"){{#hasMore}},
93+
{{/hasMore}}{{/scopes}}
94+
}{{/isOAuth}}){{#hasMore}},
95+
{{/hasMore}}{{/authMethods}}
96+
}{{/hasAuthMethods}}, tags={ {{#vendorExtensions.x-tags}}"{{tag}}",{{/vendorExtensions.x-tags}} })
97+
@ApiResponses(value = { {{#responses}}
98+
@ApiResponse(code = {{{code}}}, message = "{{{message}}}"{{#baseType}}, response = {{{baseType}}}.class{{/baseType}}{{#containerType}}, responseContainer = "{{{containerType}}}"{{/containerType}}){{#hasMore}},{{/hasMore}}{{/responses}} })
99+
{{#implicitHeaders}}
100+
@ApiImplicitParams({
101+
{{#headerParams}}
102+
{{>implicitHeader}}
103+
{{/headerParams}}
104+
})
105+
{{/implicitHeaders}}
106+
@RequestMapping(value = "{{{path}}}",{{#singleContentTypes}}{{#hasProduces}}
107+
produces = "{{{vendorExtensions.x-accepts}}}", {{/hasProduces}}{{#hasConsumes}}
108+
consumes = "{{{vendorExtensions.x-contentType}}}",{{/hasConsumes}}{{/singleContentTypes}}{{^singleContentTypes}}{{#hasProduces}}
109+
produces = { {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }, {{/hasProduces}}{{#hasConsumes}}
110+
consumes = { {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} },{{/hasConsumes}}{{/singleContentTypes}}
111+
method = RequestMethod.{{httpMethod}})
112+
{{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{#delegate-method}}_{{/delegate-method}}{{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{^hasMore}}{{#reactive}}, {{/reactive}}{{/hasMore}}{{/allParams}}{{#reactive}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
113+
{{#delegate-method}}
114+
return {{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}exchange{{/reactive}});
115+
}
116+
117+
// Override this method
118+
{{#jdk8}}default {{/jdk8}} {{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}ServerWebExchange exchange{{/reactive}}) {
119+
{{/delegate-method}}
120+
{{^isDelegate}}
121+
{{>methodBody}}
122+
{{/isDelegate}}
123+
{{#isDelegate}}
124+
return getDelegate().{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}exchange{{/reactive}});
125+
{{/isDelegate}}
126+
}{{/jdk8}}
127+
128+
{{/operation}}
129+
}
130+
{{/operations}}
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
package {{package}};
2+
3+
{{^jdk8}}
4+
{{#imports}}import {{import}};
5+
{{/imports}}
6+
import io.swagger.annotations.*;
7+
import org.springframework.http.HttpStatus;
8+
import org.springframework.http.MediaType;
9+
import org.springframework.http.ResponseEntity;
10+
{{/jdk8}}
11+
import org.springframework.stereotype.Controller;
12+
{{^jdk8}}
13+
import org.springframework.web.bind.annotation.PathVariable;
14+
import org.springframework.web.bind.annotation.RequestBody;
15+
import org.springframework.web.bind.annotation.RequestHeader;
16+
{{/jdk8}}
17+
import org.springframework.web.bind.annotation.RequestMapping;
18+
{{^jdk8}}
19+
import org.springframework.web.bind.annotation.RequestParam;
20+
import org.springframework.web.bind.annotation.RequestPart;
21+
{{/jdk8}}
22+
{{^isDelegate}}
23+
import org.springframework.web.context.request.NativeWebRequest;
24+
{{/isDelegate}}
25+
{{^jdk8}}
26+
import org.springframework.web.multipart.MultipartFile;
27+
28+
{{#useBeanValidation}}
29+
import javax.validation.constraints.*;
30+
import javax.validation.Valid;
31+
{{/useBeanValidation}}
32+
{{/jdk8}}
33+
{{#jdk8}}
34+
import java.util.Optional;
35+
{{/jdk8}}
36+
{{^jdk8}}
37+
import java.util.List;
38+
import java.util.Map;
39+
{{#async}}
40+
import java.util.concurrent.Callable;
41+
{{/async}}
42+
{{/jdk8}}
43+
{{>generatedAnnotation}}
44+
@Controller
45+
{{=<% %>=}}
46+
@RequestMapping("${openapi.<%title%>.base-path:<%>defaultBasePath%>}")
47+
<%={{ }}=%>
48+
{{#operations}}
49+
public class {{classname}}Controller implements {{classname}} {
50+
{{#isDelegate}}
51+
52+
private final {{classname}}Delegate delegate;
53+
54+
public {{classname}}Controller(@org.springframework.beans.factory.annotation.Autowired(required = false) {{classname}}Delegate delegate) {
55+
{{#jdk8}}
56+
this.delegate = Optional.ofNullable(delegate).orElse(new {{classname}}Delegate() {});
57+
}
58+
59+
@Override
60+
public {{classname}}Delegate getDelegate() {
61+
return delegate;
62+
}
63+
{{/jdk8}}
64+
{{^jdk8}}
65+
this.delegate = delegate;
66+
}
67+
{{/jdk8}}
68+
{{/isDelegate}}
69+
{{^isDelegate}}
70+
{{^reactive}}
71+
72+
{{^jdk8}}
73+
{{/jdk8}}
74+
private final NativeWebRequest request;
75+
76+
@org.springframework.beans.factory.annotation.Autowired
77+
public {{classname}}Controller(NativeWebRequest request) {
78+
this.request = request;
79+
}
80+
{{#jdk8}}
81+
82+
@Override
83+
public Optional<NativeWebRequest> getRequest() {
84+
return Optional.ofNullable(request);
85+
}
86+
{{/jdk8}}
87+
{{/reactive}}
88+
{{/isDelegate}}
89+
90+
{{^jdk8}}
91+
{{#operation}}
92+
public {{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}}) {
93+
{{^isDelegate}}
94+
{{^async}}
95+
{{>methodBody}}
96+
{{/async}}
97+
{{#async}}
98+
return new Callable<ResponseEntity<{{>returnTypes}}>>() {
99+
@Override
100+
public ResponseEntity<{{>returnTypes}}> call() {
101+
{{>methodBody}}
102+
}
103+
};
104+
{{/async}}
105+
{{/isDelegate}}
106+
{{#isDelegate}}
107+
return delegate.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
108+
{{/isDelegate}}
109+
}
110+
111+
{{/operation}}
112+
{{/jdk8}}
113+
}
114+
{{/operations}}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package {{package}};
2+
3+
{{#imports}}import {{import}};
4+
{{/imports}}
5+
import io.swagger.annotations.*;
6+
{{#jdk8}}
7+
import org.springframework.http.HttpStatus;
8+
import org.springframework.http.MediaType;
9+
{{/jdk8}}
10+
import org.springframework.http.ResponseEntity;
11+
{{#jdk8}}
12+
import org.springframework.web.context.request.NativeWebRequest;
13+
{{/jdk8}}
14+
import org.springframework.web.multipart.MultipartFile;
15+
{{#reactive}}
16+
import org.springframework.web.server.ServerWebExchange;
17+
import reactor.core.publisher.Flux;
18+
import reactor.core.publisher.Mono;
19+
{{/reactive}}
20+
21+
import java.util.List;
22+
import java.util.Map;
23+
{{#jdk8}}
24+
import java.util.Optional;
25+
{{/jdk8}}
26+
{{^jdk8}}
27+
{{#useOptional}}
28+
import java.util.Optional;
29+
{{/useOptional}}
30+
{{/jdk8}}
31+
{{#async}}
32+
import java.util.concurrent.{{^jdk8}}Callable{{/jdk8}}{{#jdk8}}CompletableFuture{{/jdk8}};
33+
{{/async}}
34+
35+
{{#operations}}
36+
/**
37+
* A delegate to be called by the {@link {{classname}}Controller}}.
38+
* Implement this interface with a {@link org.springframework.stereotype.Service} annotated class.
39+
*/
40+
{{>generatedAnnotation}}
41+
public interface {{classname}}Delegate {
42+
{{#jdk8}}
43+
44+
default Optional<NativeWebRequest> getRequest() {
45+
return Optional.empty();
46+
}
47+
{{/jdk8}}
48+
49+
{{#operation}}
50+
/**
51+
* @see {{classname}}#{{operationId}}
52+
*/
53+
{{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}},
54+
{{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}},
55+
{{/hasParams}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
56+
{{>methodBody}}
57+
}{{/jdk8}}
58+
59+
{{/operation}}
60+
}
61+
{{/operations}}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package {{apiPackage}};
2+
3+
{{>generatedAnnotation}}
4+
public class ApiException extends Exception{
5+
private int code;
6+
public ApiException (int code, String msg) {
7+
super(msg);
8+
this.code = code;
9+
}
10+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package {{apiPackage}};
2+
3+
import java.io.IOException;
4+
5+
import javax.servlet.*;
6+
import javax.servlet.http.HttpServletResponse;
7+
8+
{{>generatedAnnotation}}
9+
public class ApiOriginFilter implements javax.servlet.Filter {
10+
@Override
11+
public void doFilter(ServletRequest request, ServletResponse response,
12+
FilterChain chain) throws IOException, ServletException {
13+
HttpServletResponse res = (HttpServletResponse) response;
14+
res.addHeader("Access-Control-Allow-Origin", "*");
15+
res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
16+
res.addHeader("Access-Control-Allow-Headers", "Content-Type");
17+
chain.doFilter(request, response);
18+
}
19+
20+
@Override
21+
public void destroy() {
22+
}
23+
24+
@Override
25+
public void init(FilterConfig filterConfig) throws ServletException {
26+
}
27+
}

0 commit comments

Comments
 (0)