Skip to content

Commit c906ef5

Browse files
v0.2.1
1 parent b4538ee commit c906ef5

File tree

16 files changed

+69
-33
lines changed

16 files changed

+69
-33
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [unreleased]
99

10+
## [0.2.1] - 2022-06-13
11+
### Changed
12+
- Downgraded `reflections` version
13+
- Updated jpa entity relations to always be lazy by default
14+
- Fix delete endpoint generation to be able to generate no content responses
15+
1016
## [0.2.0] - 2022-04-18
1117
### Changed
1218
- Updated spring boot version to `2.6.6`
@@ -23,7 +29,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2329
### Added
2430
- Initial functional version of Apigen
2531

26-
[unreleased]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.0...HEAD
32+
[unreleased]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.1...HEAD
33+
[0.2.1]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.1
2734
[0.2.0]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.0
2835
[0.1.1]: https://github.com/apiaddicts/apigen/releases/tag/v0.1.1
2936
[0.1.0]: https://github.com/apiaddicts/apigen/releases/tag/v0.1.0

MIGRATION_GUIDE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ In this version Apigen has been updated to be auto documented with `spring-doc`
1010
- Perform the Spring Boot migration from `2.4.x` to `2.6.x`
1111
- Remove the property `apigen.documentation.enabled`, now the documentation is managed by the `spring-doc` official properties
1212

13-
[unreleased]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.0...HEAD
13+
[unreleased]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.1...HEAD
14+
[0.2.1]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.1
1415
[0.2.0]: https://github.com/apiaddicts/apigen/releases/tag/v0.2.0
1516
[0.1.1]: https://github.com/apiaddicts/apigen/releases/tag/v0.1.1
1617
[0.1.0]: https://github.com/apiaddicts/apigen/releases/tag/v0.1.0

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CloudAppi is one leader in APIs in global word. See the [CloudAPPi Services](htt
2020
version: "3.3"
2121
services:
2222
apigen:
23-
image: "apiaddicts/apitools-apigen:0.2.0"
23+
image: "apiaddicts/apitools-apigen:0.2.1"
2424
ports:
2525
- "8080:8080"
2626
```

apigen-examples/simple-id-models/api-test.yaml

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,8 @@ paths:
7878
parameters:
7979
- $ref: "#/components/parameters/string_id_param"
8080
responses:
81-
'200':
82-
description: Ok
83-
content:
84-
application/json:
85-
schema:
86-
$ref: "#/components/schemas/standard_response_owner"
81+
'204':
82+
description: No content
8783

8884
/tags:
8985
x-apigen-binding:
@@ -181,12 +177,8 @@ paths:
181177
parameters:
182178
- $ref: "#/components/parameters/integer_id_param"
183179
responses:
184-
'200':
185-
description: Ok
186-
content:
187-
application/json:
188-
schema:
189-
$ref: "#/components/schemas/standard_response_pet"
180+
'204':
181+
description: No content
190182

191183
/pets/search:
192184
x-apigen-binding:
@@ -845,4 +837,4 @@ x-apigen-project:
845837
version: 1.0.0
846838
java-properties:
847839
group-id: the.group
848-
artifact-id: app
840+
artifact-id: app

archetype-parent-spring-boot/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949

5050
<properties>
5151

52-
<revision>0.2.0</revision>
52+
<revision>0.2.1</revision>
5353

5454
<java.version>1.8</java.version>
5555
<maven.compiler.source>1.8</maven.compiler.source>

generator-core/src/main/java/org/apiaddicts/apitools/apigen/generatorcore/config/extractors/ResponseExtractor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public Response getResponse(Operation operation) {
2525
.filter(n -> n >= 200 && n <= 400)
2626
.sorted()
2727
.findFirst().orElse(0);
28+
29+
if (status == 204) {
30+
return null;
31+
}
32+
2833
ApiResponse response = operation.getResponses().get(status == 0 ? "default" : String.valueOf(status));
2934

3035
Response endpointResponse = new Response();

generator-core/src/main/java/org/apiaddicts/apitools/apigen/generatorcore/generator/common/Members.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class Members {
55
public static final String VALUE = "value";
66
public static final String NAME = "name";
77
public static final String MAPPED_BY = "mappedBy";
8+
public static final String FETCH = "fetch";
89
public static final String UNIQUE = "unique";
910
public static final String SEQUENCE_NAME = "sequenceName";
1011
public static final String STRATEGY = "strategy";

generator-core/src/main/java/org/apiaddicts/apitools/apigen/generatorcore/generator/persistence/relations/ManyToOneBuilder.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@
33
import com.squareup.javapoet.AnnotationSpec;
44
import lombok.extern.slf4j.Slf4j;
55

6+
import javax.persistence.FetchType;
67
import javax.persistence.ManyToOne;
78

89
import java.util.List;
910

11+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.ENUM_VALUE;
12+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.LITERAL;
13+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Members.FETCH;
14+
1015
@Slf4j
1116
public class ManyToOneBuilder extends RelatedFieldBuilder {
1217

@@ -18,7 +23,9 @@ public ManyToOneBuilder(List<ColumnRelation> columns) {
1823

1924
@Override
2025
protected void initialize() {
21-
annotations.add(AnnotationSpec.builder(ManyToOne.class).build());
26+
annotations.add(AnnotationSpec.builder(ManyToOne.class)
27+
.addMember(FETCH, ENUM_VALUE, FetchType.class, FetchType.LAZY.name())
28+
.build());
2229
for (ColumnRelation cr : columns) {
2330
annotations.add(joinColumn(cr.getName(), cr.getReferencedName()));
2431
}

generator-core/src/main/java/org/apiaddicts/apitools/apigen/generatorcore/generator/persistence/relations/OneToOneBuilder.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import com.squareup.javapoet.AnnotationSpec;
44

5+
import javax.persistence.FetchType;
56
import javax.persistence.OneToOne;
67

7-
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.STRING;
8+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.*;
9+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Members.FETCH;
810
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Members.MAPPED_BY;
911

1012
public class OneToOneBuilder extends RelatedFieldBuilder {
@@ -19,6 +21,7 @@ public OneToOneBuilder(String mappedByFieldName) {
1921
protected void initialize() {
2022
AnnotationSpec relationAnnotation = AnnotationSpec.builder(OneToOne.class)
2123
.addMember(MAPPED_BY, STRING, mappedByFieldName)
24+
.addMember(FETCH, ENUM_VALUE, FetchType.class, FetchType.LAZY.name())
2225
.build();
2326
annotations.add(relationAnnotation);
2427
}

generator-core/src/main/java/org/apiaddicts/apitools/apigen/generatorcore/generator/persistence/relations/OneToOneOwnerBuilder.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
import com.squareup.javapoet.AnnotationSpec;
44

5+
import javax.persistence.FetchType;
56
import javax.persistence.OneToOne;
67

78
import java.util.List;
89

10+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.ENUM_VALUE;
11+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Formats.LITERAL;
12+
import static org.apiaddicts.apitools.apigen.generatorcore.generator.common.Members.FETCH;
13+
914
public class OneToOneOwnerBuilder extends RelatedFieldBuilder {
1015

1116
private List<ColumnRelation> columns;
@@ -16,7 +21,9 @@ public OneToOneOwnerBuilder(List<ColumnRelation> columns) {
1621

1722
@Override
1823
protected void initialize() {
19-
annotations.add(AnnotationSpec.builder(OneToOne.class).build());
24+
annotations.add(AnnotationSpec.builder(OneToOne.class)
25+
.addMember(FETCH, ENUM_VALUE, FetchType.class, FetchType.LAZY.name())
26+
.build());
2027
for (ColumnRelation cr : columns) {
2128
annotations.add(joinColumn(cr.getName(), cr.getReferencedName()));
2229
}

0 commit comments

Comments
 (0)