Skip to content

Commit 3f39603

Browse files
Fix @component for RestTemplate ApiClient (#662)
* Fix @component for RestTemplate ApiClient
1 parent 0714a7d commit 3f39603

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ It currently consists of
1515

1616
# Release Notes
1717
BOAT is still under development and subject to change.
18-
18+
## 0.17.24
19+
* boat-spring
20+
* Fix [Inconsistent @Component for RestTemplate](https://github.com/Backbase/backbase-openapi-tools/issues/661)
1921
## 0.17.23
2022
* *Boat Engine*
2123
* Added support for byte array examples

boat-scaffold/src/main/templates/boat-java/libraries/resttemplate/ApiClient.mustache

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ import org.springframework.http.converter.HttpMessageConverter;
2929
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
3030
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
3131
{{/withXml}}
32+
{{#createApiComponent}}
3233
import org.springframework.stereotype.Component;
34+
{{/createApiComponent}}
3335
import org.springframework.util.CollectionUtils;
3436
import org.springframework.util.LinkedMultiValueMap;
3537
import org.springframework.util.MultiValueMap;
@@ -84,7 +86,9 @@ import {{invokerPackage}}.auth.OAuth;
8486
{{/hasOAuthMethods}}
8587

8688
{{>generatedAnnotation}}
89+
{{#createApiComponent}}
8790
@Component("{{invokerPackage}}.ApiClient")
91+
{{/createApiComponent}}
8892
public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
8993
public enum CollectionFormat {
9094
CSV(","), TSV("\t"), SSV(" "), PIPES("|"), MULTI(null);

boat-scaffold/src/main/templates/boat-java/libraries/resttemplate/api.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import java.util.Map;
1313
import java.util.stream.Collectors;{{/fullJavaUtil}}
1414

1515
import org.springframework.beans.factory.annotation.Autowired;
16+
{{#createApiComponent}}
1617
import org.springframework.stereotype.Component;
18+
{{/createApiComponent}}
1719
import org.springframework.util.LinkedMultiValueMap;
1820
import org.springframework.util.MultiValueMap;
1921
import org.springframework.web.client.RestClientException;

boat-scaffold/src/test/java/com/backbase/oss/codegen/java/BoatJavaCodeGenTests.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.backbase.oss.codegen.java;
22

33
import com.github.javaparser.StaticJavaParser;
4-
import com.github.javaparser.ast.body.MethodDeclaration;
54
import com.github.javaparser.ast.body.TypeDeclaration;
65
import io.swagger.parser.OpenAPIParser;
76
import io.swagger.v3.parser.core.models.ParseOptions;
@@ -11,10 +10,10 @@
1110
import org.openapitools.codegen.CliOption;
1211
import org.openapitools.codegen.ClientOptInput;
1312
import org.openapitools.codegen.DefaultGenerator;
14-
import org.openapitools.codegen.languages.SpringCodegen;
1513

1614
import java.io.File;
1715
import java.io.FileNotFoundException;
16+
import java.util.function.Function;
1817
import java.util.List;
1918
import java.util.Map;
2019

@@ -140,15 +139,22 @@ void shouldHonourGenerateComponentAnnotation(boolean generate) throws Interrupte
140139

141140
List<File> files = new DefaultGenerator().opts(clientOptInput).generate();
142141

143-
File apiFile = files.stream()
144-
.filter(file -> file.getName().equals("PaymentsApiClient.java"))
145-
.findFirst()
146-
.get();
142+
Function<String, File> getFileByName = (String fileName) -> files.stream()
143+
.filter(file -> file.getName().equals(fileName))
144+
.findFirst()
145+
.get();
146+
147+
File apiFile = getFileByName.apply("PaymentsApiClient.java");
147148
TypeDeclaration apiType = StaticJavaParser.parse(apiFile)
148149
.findFirst(TypeDeclaration.class).get();
150+
assertThat(apiType.getAnnotationByName("Component").isPresent(), is(generate));
151+
152+
File apiClientFile = getFileByName.apply("ApiClient.java");
153+
TypeDeclaration apiClientType = StaticJavaParser.parse(apiClientFile)
154+
.findFirst(TypeDeclaration.class).get();
155+
assertThat(apiClientType.getAnnotationByName("Component").isPresent(), is(generate));
149156

150157
assertThat(gen.createApiComponent, is(generate));
151158
assertThat(gen.getLibrary(), is("resttemplate"));
152-
assertThat(apiType.getAnnotationByName("Component").isPresent(), is(generate));
153159
}
154160
}

0 commit comments

Comments
 (0)